Merge branch 'feature-docker-place' into develop
This commit is contained in:
commit
171509f0d6
@ -34,8 +34,13 @@ if(BIICODE)
|
||||
# we'll use the default config file so we can iliminate the following macro definitions
|
||||
if(MSVC)
|
||||
# More MSVC specific compilation flags
|
||||
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
if(MSVC14)
|
||||
add_definitions(-DSTD_CODECVT_NOT_SUPPORTED)
|
||||
else()
|
||||
add_definitions(-DNOT_IMPLEMENTED_KEYWORD_noexcept)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_biicode_targets()
|
||||
|
@ -102,7 +102,6 @@
|
||||
<Unit filename="../../source/internationalization.cpp" />
|
||||
<Unit filename="../../source/paint/detail/image_process_provider.cpp" />
|
||||
<Unit filename="../../source/paint/detail/native_paint_interface.cpp" />
|
||||
<Unit filename="../../source/paint/gadget.cpp" />
|
||||
<Unit filename="../../source/paint/graphics.cpp" />
|
||||
<Unit filename="../../source/paint/image.cpp" />
|
||||
<Unit filename="../../source/paint/image_process_selector.cpp" />
|
||||
|
@ -537,3 +537,633 @@
|
||||
1399002439 source:d:\privates\nana\release\nana.cpp11\source\gui\detail\element_store.cpp
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
|
||||
1363362719 source:d:\git.repo\nana\source\any.cpp
|
||||
<nana/any.hpp>
|
||||
|
||||
1362509572 source:d:\git.repo\nana\source\audio\detail\audio_device.cpp
|
||||
<nana/audio/detail/audio_device.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<pthread.h>
|
||||
<unistd.h>
|
||||
<sys/time.h>
|
||||
<errno.h>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\audio\detail\audio_stream.cpp
|
||||
<nana/audio/detail/audio_stream.hpp>
|
||||
<nana/charset.hpp>
|
||||
|
||||
1362509721 source:d:\git.repo\nana\source\audio\detail\buffer_preparation.cpp
|
||||
<nana/audio/detail/buffer_preparation.hpp>
|
||||
<cstring>
|
||||
|
||||
1353253406 source:d:\git.repo\nana\source\audio\player.cpp
|
||||
<nana/audio/player.hpp>
|
||||
<nana/audio/detail/audio_stream.hpp>
|
||||
<nana/audio/detail/audio_device.hpp>
|
||||
<nana/audio/detail/buffer_preparation.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\basic_types.cpp
|
||||
<nana/basic_types.hpp>
|
||||
<regex>
|
||||
<vector>
|
||||
<algorithm>
|
||||
<stdexcept>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\charset.cpp
|
||||
<nana/charset.hpp>
|
||||
<utility>
|
||||
<nana/deploy.hpp>
|
||||
<cwchar>
|
||||
<clocale>
|
||||
<codecvt>
|
||||
<windows.h>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\datetime.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/datetime.hpp>
|
||||
<windows.h>
|
||||
<cassert>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\deploy.cpp
|
||||
<nana/deploy.hpp>
|
||||
<cstdlib>
|
||||
<stdexcept>
|
||||
<windows.h>
|
||||
<string.h>
|
||||
<sstream>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\detail\platform_spec_selector.cpp
|
||||
<nana/config.hpp>
|
||||
"win32/platform_spec.cpp"
|
||||
"linux_X11/platform_spec.cpp"
|
||||
|
||||
1439496157 d:\git.repo\nana\source\detail\win32\platform_spec.cpp
|
||||
<nana/config.hpp>
|
||||
<shellapi.h>
|
||||
<stdexcept>
|
||||
<VersionHelpers.h>
|
||||
|
||||
1439496157 d:\git.repo\nana\source\detail\linux_x11\platform_spec.cpp
|
||||
<nana/config.hpp>
|
||||
<X11/Xlocale.h>
|
||||
<locale>
|
||||
<map>
|
||||
<set>
|
||||
<algorithm>
|
||||
<nana/paint/graphics.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<errno.h>
|
||||
<sstream>
|
||||
"msg_dispatcher.hpp"
|
||||
|
||||
1439496157 d:\git.repo\nana\source\detail\linux_x11\msg_dispatcher.hpp
|
||||
<nana/detail/linux_X11/msg_packet.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<list>
|
||||
<set>
|
||||
<map>
|
||||
<mutex>
|
||||
<condition_variable>
|
||||
<memory>
|
||||
<thread>
|
||||
|
||||
1365203880 source:d:\git.repo\nana\source\exceptions.cpp
|
||||
<nana/exceptions.hpp>
|
||||
|
||||
1365203878 source:d:\git.repo\nana\source\filesystem\file_iterator.cpp
|
||||
<nana/filesystem/file_iterator.hpp>
|
||||
|
||||
1365203878 source:d:\git.repo\nana\source\filesystem\fs_utility.cpp
|
||||
<nana/filesystem/fs_utility.hpp>
|
||||
<nana/filesystem/file_iterator.hpp>
|
||||
<vector>
|
||||
<windows.h>
|
||||
<shlobj.h>
|
||||
<nana/datetime.hpp>
|
||||
<nana/charset.hpp>
|
||||
<sys/stat.h>
|
||||
<sys/types.h>
|
||||
<dirent.h>
|
||||
<cstdio>
|
||||
<cstring>
|
||||
<errno.h>
|
||||
<unistd.h>
|
||||
<stdlib.h>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\animation.cpp
|
||||
<nana/gui/animation.hpp>
|
||||
<nana/gui/drawing.hpp>
|
||||
<nana/system/timepiece.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<vector>
|
||||
<list>
|
||||
<algorithm>
|
||||
<nana/std_thread.hpp>
|
||||
<nana/std_mutex.hpp>
|
||||
<nana/std_condition_variable.hpp>
|
||||
<mutex>
|
||||
<condition_variable>
|
||||
<thread>
|
||||
|
||||
1423350892 source:d:\git.repo\nana\source\gui\basis.cpp
|
||||
<nana/gui/basis.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\basic_window.cpp
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\bedrock_pi.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock_pi_data.hpp>
|
||||
<nana/gui/detail/event_code.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<sstream>
|
||||
<nana/system/timepiece.hpp>
|
||||
<nana/gui/wvl.hpp>
|
||||
<nana/gui/detail/inner_fwd_implement.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
<algorithm>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\bedrock_selector.cpp
|
||||
<nana/config.hpp>
|
||||
"win32/bedrock.cpp"
|
||||
"linux_X11/bedrock.cpp"
|
||||
|
||||
1439496157 d:\git.repo\nana\source\gui\detail\win32\bedrock.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/bedrock_pi_data.hpp>
|
||||
<nana/gui/detail/event_code.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<sstream>
|
||||
<nana/system/timepiece.hpp>
|
||||
<nana/gui.hpp>
|
||||
<nana/gui/detail/inner_fwd_implement.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
<nana/gui/detail/color_schemes.hpp>
|
||||
|
||||
1439496157 d:\git.repo\nana\source\gui\detail\linux_x11\bedrock.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock_pi_data.hpp>
|
||||
<nana/gui/detail/event_code.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<nana/gui/detail/inner_fwd_implement.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
<errno.h>
|
||||
|
||||
1423350892 source:d:\git.repo\nana\source\gui\detail\color_schemes.cpp
|
||||
<nana/gui/detail/color_schemes.hpp>
|
||||
<map>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\drawer.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/drawer.hpp>
|
||||
<nana/gui/detail/dynamic_drawing_object.hpp>
|
||||
<nana/gui/detail/effects_renderer.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
<nana/detail/linux_X11/platform_spec.hpp>
|
||||
|
||||
1408986718 source:d:\git.repo\nana\source\gui\detail\element_store.cpp
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\events_operation.cpp
|
||||
<nana/gui/detail/events_operation.hpp>
|
||||
|
||||
1439828940 source:d:\git.repo\nana\source\gui\detail\native_window_interface.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/screen.hpp>
|
||||
<nana/std_mutex.hpp>
|
||||
<mutex>
|
||||
<map>
|
||||
"../../paint/detail/image_ico.hpp"
|
||||
<nana/system/platform.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
|
||||
1439496158 d:\git.repo\nana\source\paint\detail\image_ico.hpp
|
||||
<nana/paint/detail/image_impl_interface.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\window_layout.cpp
|
||||
<nana/gui/detail/window_layout.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<algorithm>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\detail\window_manager.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/handle_manager.hpp>
|
||||
<nana/gui/detail/window_manager.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/detail/inner_fwd_implement.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/gui/detail/effects_renderer.hpp>
|
||||
<stdexcept>
|
||||
<algorithm>
|
||||
|
||||
1439746409 source:d:\git.repo\nana\source\gui\dragger.cpp
|
||||
<nana/gui/dragger.hpp>
|
||||
|
||||
1423350892 source:d:\git.repo\nana\source\gui\drawing.cpp
|
||||
<nana/gui/drawing.hpp>
|
||||
<nana/gui/programming_interface.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\effects.cpp
|
||||
<nana/gui/effects.hpp>
|
||||
<nana/gui/programming_interface.hpp>
|
||||
|
||||
1439829040 source:d:\git.repo\nana\source\gui\element.cpp
|
||||
<nana/gui/element.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/element_store.hpp>
|
||||
<nana/paint/image.hpp>
|
||||
<map>
|
||||
<string>
|
||||
<nana/std_mutex.hpp>
|
||||
<mutex>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\filebox.cpp
|
||||
<nana/gui.hpp>
|
||||
<nana/gui/filebox.hpp>
|
||||
<nana/filesystem/fs_utility.hpp>
|
||||
<windows.h>
|
||||
<nana/gui/widgets/label.hpp>
|
||||
<nana/gui/widgets/button.hpp>
|
||||
<nana/gui/widgets/listbox.hpp>
|
||||
<nana/gui/widgets/categorize.hpp>
|
||||
<nana/gui/widgets/textbox.hpp>
|
||||
<nana/gui/widgets/treebox.hpp>
|
||||
<nana/gui/widgets/combox.hpp>
|
||||
<nana/filesystem/file_iterator.hpp>
|
||||
<nana/gui/place.hpp>
|
||||
<stdexcept>
|
||||
<algorithm>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\layout_utility.cpp
|
||||
<nana/gui/layout_utility.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\msgbox.cpp
|
||||
<nana/gui.hpp>
|
||||
<nana/gui/widgets/label.hpp>
|
||||
<nana/gui/widgets/button.hpp>
|
||||
<nana/gui/widgets/spinbox.hpp>
|
||||
<nana/gui/widgets/combox.hpp>
|
||||
<nana/gui/widgets/textbox.hpp>
|
||||
<nana/gui/widgets/panel.hpp>
|
||||
<nana/gui/widgets/picture.hpp>
|
||||
<nana/gui/place.hpp>
|
||||
<nana/datetime.hpp>
|
||||
<nana/internationalization.hpp>
|
||||
<nana/gui/filebox.hpp>
|
||||
<functional>
|
||||
<cstdlib>
|
||||
<windows.h>
|
||||
<nana/gui/widgets/picture.hpp>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
|
||||
1439496157 source:d:\git.repo\nana\source\gui\notifier.cpp
|
||||
<nana/deploy.hpp>
|
||||
<nana/gui/programming_interface.hpp>
|
||||
<nana/gui/notifier.hpp>
|
||||
<nana/gui/timer.hpp>
|
||||
<unordered_map>
|
||||
<unordered_set>
|
||||
<nana/std_mutex.hpp>
|
||||
<mutex>
|
||||
<nana/detail/win32/platform_spec.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<iostream>
|
||||
|
||||
1439746410 source:d:\git.repo\nana\source\gui\programming_interface.cpp
|
||||
<nana/gui/programming_interface.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/widgets/widget.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\screen.cpp
|
||||
<nana/gui/screen.hpp>
|
||||
<vector>
|
||||
<memory>
|
||||
<nana/gui/detail/native_window_interface.hpp>
|
||||
<nana/gui/programming_interface.hpp>
|
||||
<windows.h>
|
||||
|
||||
1415011766 source:d:\git.repo\nana\source\gui\state_cursor.cpp
|
||||
<nana/gui/state_cursor.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\timer.cpp
|
||||
<nana/deploy.hpp>
|
||||
<nana/gui/timer.hpp>
|
||||
<map>
|
||||
<memory>
|
||||
<nana/std_mutex.hpp>
|
||||
<mutex>
|
||||
<windows.h>
|
||||
<nana/system/platform.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\tooltip.cpp
|
||||
<nana/gui/tooltip.hpp>
|
||||
<nana/gui/widgets/label.hpp>
|
||||
<nana/gui/timer.hpp>
|
||||
<nana/gui/screen.hpp>
|
||||
<memory>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\button.cpp
|
||||
<nana/gui/widgets/button.hpp>
|
||||
<nana/paint/text_renderer.hpp>
|
||||
|
||||
1439829040 source:d:\git.repo\nana\source\gui\widgets\categorize.cpp
|
||||
<nana/gui/wvl.hpp>
|
||||
<nana/gui/widgets/categorize.hpp>
|
||||
<nana/gui/widgets/float_listbox.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/gui/widgets/detail/tree_cont.hpp>
|
||||
<stdexcept>
|
||||
|
||||
1439829040 source:d:\git.repo\nana\source\gui\widgets\checkbox.cpp
|
||||
<nana/gui/widgets/checkbox.hpp>
|
||||
<nana/paint/text_renderer.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<algorithm>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\combox.cpp
|
||||
<nana/gui.hpp>
|
||||
<nana/gui/widgets/combox.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/system/dataexch.hpp>
|
||||
<nana/gui/widgets/float_listbox.hpp>
|
||||
<nana/gui/widgets/skeletons/text_editor.hpp>
|
||||
<nana/gui/widgets/skeletons/textbase_export_interface.hpp>
|
||||
<iterator>
|
||||
|
||||
1439829040 source:d:\git.repo\nana\source\gui\widgets\date_chooser.cpp
|
||||
<nana/gui/widgets/date_chooser.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<sstream>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\float_listbox.cpp
|
||||
<nana/gui/widgets/float_listbox.hpp>
|
||||
<nana/gui/widgets/scroll.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\form.cpp
|
||||
<nana/gui/widgets/form.hpp>
|
||||
|
||||
1408985395 source:d:\git.repo\nana\source\gui\widgets\frame.cpp
|
||||
<nana/gui/widgets/frame.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\group.cpp
|
||||
<nana/gui/widgets/group.hpp>
|
||||
<nana/gui/widgets/label.hpp>
|
||||
<nana/gui/drawing.hpp>
|
||||
<nana/gui/widgets/checkbox.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\label.cpp
|
||||
<nana/gui/widgets/label.hpp>
|
||||
<nana/unicode_bidi.hpp>
|
||||
<nana/gui/widgets/skeletons/text_token_stream.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<stdexcept>
|
||||
<sstream>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\listbox.cpp
|
||||
<nana/gui/widgets/listbox.hpp>
|
||||
<nana/gui/widgets/scroll.hpp>
|
||||
<nana/gui/widgets/panel.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<list>
|
||||
<deque>
|
||||
<stdexcept>
|
||||
<algorithm>
|
||||
<nana/system/dataexch.hpp>
|
||||
<cassert>
|
||||
|
||||
1439828820 source:d:\git.repo\nana\source\gui\widgets\menu.cpp
|
||||
<nana/gui/widgets/menu.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/gui/wvl.hpp>
|
||||
<nana/paint/text_renderer.hpp>
|
||||
<cctype>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\menubar.cpp
|
||||
<nana/gui/widgets/menubar.hpp>
|
||||
<stdexcept>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\panel.cpp
|
||||
<nana/gui/widgets/panel.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\picture.cpp
|
||||
<nana/gui/widgets/picture.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/paint/image.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\progress.cpp
|
||||
<nana/gui/widgets/progress.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\scroll.cpp
|
||||
<nana/gui/widgets/scroll.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\skeletons\text_editor.cpp
|
||||
<nana/gui/widgets/skeletons/text_editor.hpp>
|
||||
<nana/gui/widgets/skeletons/textbase_export_interface.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/system/dataexch.hpp>
|
||||
<nana/unicode_bidi.hpp>
|
||||
<numeric>
|
||||
<cwctype>
|
||||
<cstring>
|
||||
<set>
|
||||
<algorithm>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\slider.cpp
|
||||
<nana/gui/widgets/slider.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\spinbox.cpp
|
||||
<nana/gui/widgets/spinbox.hpp>
|
||||
<nana/gui/widgets/skeletons/text_editor.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/gui/timer.hpp>
|
||||
<algorithm>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\textbox.cpp
|
||||
<nana/gui/widgets/textbox.hpp>
|
||||
<nana/gui/widgets/skeletons/text_editor.hpp>
|
||||
<stdexcept>
|
||||
<sstream>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/inner_fwd_implement.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\toolbar.cpp
|
||||
<nana/gui/widgets/toolbar.hpp>
|
||||
<nana/gui/tooltip.hpp>
|
||||
<vector>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\gui\widgets\treebox.cpp
|
||||
<nana/gui/widgets/treebox.hpp>
|
||||
<nana/gui/widgets/scroll.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<stdexcept>
|
||||
|
||||
1439746410 source:d:\git.repo\nana\source\gui\widgets\widget.cpp
|
||||
<nana/gui/widgets/widget.hpp>
|
||||
<nana/gui/tooltip.hpp>
|
||||
<nana/gui/detail/widget_notifier_interface.hpp>
|
||||
|
||||
1408984042 source:d:\git.repo\nana\source\gui\wvl.cpp
|
||||
<nana/gui/wvl.hpp>
|
||||
|
||||
1425221155 source:d:\git.repo\nana\source\internationalization.cpp
|
||||
<nana/internationalization.hpp>
|
||||
<nana/gui/widgets/widget.hpp>
|
||||
<unordered_map>
|
||||
<fstream>
|
||||
<sstream>
|
||||
<memory>
|
||||
|
||||
1423350893 source:d:\git.repo\nana\source\paint\detail\image_process_provider.cpp
|
||||
<nana/paint/detail/image_process_provider.hpp>
|
||||
<nana/paint/detail/image_processor.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\paint\detail\native_paint_interface.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/paint/detail/native_paint_interface.hpp>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<windows.h>
|
||||
<X11/Xlib.h>
|
||||
|
||||
1439746289 source:d:\git.repo\nana\source\paint\graphics.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/paint/graphics.hpp>
|
||||
<nana/paint/detail/native_paint_interface.hpp>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/unicode_bidi.hpp>
|
||||
<algorithm>
|
||||
<windows.h>
|
||||
<X11/Xlib.h>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\paint\image.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/paint/image.hpp>
|
||||
<algorithm>
|
||||
<fstream>
|
||||
<iterator>
|
||||
<stdexcept>
|
||||
<nana/paint/detail/image_impl_interface.hpp>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
"detail/image_png.hpp"
|
||||
"detail/image_bmp.hpp"
|
||||
"detail/image_ico.hpp"
|
||||
|
||||
1439687843 d:\git.repo\nana\source\paint\detail\image_png.hpp
|
||||
<nana/paint/detail/image_impl_interface.hpp>
|
||||
<nana/extrlib/png.h>
|
||||
<png.h>
|
||||
<stdio.h>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
|
||||
1439496158 d:\git.repo\nana\source\paint\detail\image_bmp.hpp
|
||||
<nana/paint/detail/image_impl_interface.hpp>
|
||||
<memory>
|
||||
|
||||
1376313789 source:d:\git.repo\nana\source\paint\image_process_selector.cpp
|
||||
<nana/paint/image_process_selector.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\paint\pixel_buffer.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/paint/pixel_buffer.hpp>
|
||||
<nana/gui/layout_utility.hpp>
|
||||
<nana/paint/detail/native_paint_interface.hpp>
|
||||
<nana/paint/detail/image_process_provider.hpp>
|
||||
<stdexcept>
|
||||
|
||||
1423350893 source:d:\git.repo\nana\source\paint\text_renderer.cpp
|
||||
<nana/config.hpp>
|
||||
<nana/paint/text_renderer.hpp>
|
||||
<nana/unicode_bidi.hpp>
|
||||
<nana/paint/detail/native_paint_interface.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\system\dataexch.cpp
|
||||
<nana/system/dataexch.hpp>
|
||||
<nana/traits.hpp>
|
||||
<nana/paint/graphics.hpp>
|
||||
<vector>
|
||||
<cassert>
|
||||
<windows.h>
|
||||
<nana/gui/detail/bedrock.hpp>
|
||||
<nana/gui/detail/basic_window.hpp>
|
||||
|
||||
1387007333 source:d:\git.repo\nana\source\system\platform.cpp
|
||||
<nana/deploy.hpp>
|
||||
<windows.h>
|
||||
<time.h>
|
||||
<errno.h>
|
||||
<unistd.h>
|
||||
<sys/time.h>
|
||||
<sys/syscall.h>
|
||||
|
||||
1365203879 source:d:\git.repo\nana\source\system\shared_wrapper.cpp
|
||||
<nana/system/shared_wrapper.hpp>
|
||||
<algorithm>
|
||||
<iterator>
|
||||
<dlfcn.h>
|
||||
<windows.h>
|
||||
|
||||
1342280997 source:d:\git.repo\nana\source\system\timepiece.cpp
|
||||
<nana/system/timepiece.hpp>
|
||||
<nana/config.hpp>
|
||||
<windows.h>
|
||||
<sys/time.h>
|
||||
|
||||
1386165989 source:d:\git.repo\nana\source\threads\pool.cpp
|
||||
<nana/threads/pool.hpp>
|
||||
<nana/system/platform.hpp>
|
||||
<time.h>
|
||||
<deque>
|
||||
<vector>
|
||||
<nana/std_condition_variable.hpp>
|
||||
<nana/std_mutex.hpp>
|
||||
<condition_variable>
|
||||
<mutex>
|
||||
<windows.h>
|
||||
<process.h>
|
||||
<pthread.h>
|
||||
|
||||
1365203748 source:d:\git.repo\nana\source\traits.cpp
|
||||
<nana/traits.hpp>
|
||||
|
||||
1439496158 source:d:\git.repo\nana\source\unicode_bidi.cpp
|
||||
<nana/unicode_bidi.hpp>
|
||||
|
||||
1439830958 source:d:\git.repo\nana\source\gui\widgets\tabbar.cpp
|
||||
<nana/gui/widgets/tabbar.hpp>
|
||||
<nana/gui/widgets/menu.hpp>
|
||||
<nana/paint/text_renderer.hpp>
|
||||
<nana/gui/element.hpp>
|
||||
<stdexcept>
|
||||
<list>
|
||||
<forward_list>
|
||||
|
||||
|
@ -1,24 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_layout_file>
|
||||
<ActiveTarget name="Debug" />
|
||||
<File name="..\..\source\paint\text_renderer.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\..\source\gui\msgbox.cpp" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5894" topLine="205" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\native_window_interface.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4901" topLine="171" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\window_layout.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5198" topLine="161" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\window_manager.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="30124" topLine="1046" />
|
||||
<Cursor1 position="48249" topLine="407" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\listbox.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
@ -26,9 +11,9 @@
|
||||
<Cursor1 position="12428" topLine="532" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\dragger.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<File name="..\..\source\gui\place.cpp" open="1" top="1" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1316" topLine="59" />
|
||||
<Cursor1 position="63864" topLine="2449" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\menu.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
@ -36,66 +21,26 @@
|
||||
<Cursor1 position="27717" topLine="1044" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\threads\pool.cpp" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5569" topLine="249" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\element.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="20890" topLine="542" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\filebox.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="22934" topLine="871" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\msgbox.cpp" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="48249" topLine="407" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\charset.cpp" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="412" topLine="15" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\threads\pool.cpp" open="0" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5569" topLine="249" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\programming_interface.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5022" topLine="159" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\tabbar.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="18615" topLine="760" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\textbox.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="11188" topLine="459" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\toolbar.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2244" topLine="84" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\detail\platform_spec_selector.cpp" open="0" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="587" topLine="2" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\treebox.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="15535" topLine="539" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\audio\detail\buffer_preparation.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1924" topLine="62" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\tooltip.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4739" topLine="194" />
|
||||
@ -126,29 +71,89 @@
|
||||
<Cursor1 position="6998" topLine="275" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\audio\detail\audio_device.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="6256" topLine="215" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\combox.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="16572" topLine="610" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\tabbar.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="37420" topLine="1435" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\date_chooser.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="457" topLine="3" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\textbox.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="11188" topLine="459" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\toolbar.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="2244" topLine="84" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\widgets\treebox.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="15535" topLine="539" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\native_window_interface.cpp" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="4901" topLine="171" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\window_layout.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5198" topLine="161" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\detail\window_manager.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="30124" topLine="1046" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\paint\graphics.cpp" open="0" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="30961" topLine="1020" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\dragger.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1316" topLine="59" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\paint\image.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="3714" topLine="168" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\audio\detail\buffer_preparation.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="1924" topLine="62" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\element.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="20890" topLine="542" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\paint\text_renderer.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="5894" topLine="205" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\gui\filebox.cpp" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="22934" topLine="871" />
|
||||
</Cursor>
|
||||
</File>
|
||||
<File name="..\..\source\audio\detail\audio_device.cpp" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
|
||||
<Cursor>
|
||||
<Cursor1 position="6256" topLine="215" />
|
||||
</Cursor>
|
||||
</File>
|
||||
</CodeBlocks_layout_file>
|
||||
|
@ -243,7 +243,6 @@
|
||||
<ClCompile Include="..\..\source\internationalization.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\detail\image_process_provider.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\detail\native_paint_interface.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\gadget.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\graphics.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\image.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\image_process_selector.cpp" />
|
||||
@ -277,8 +276,8 @@
|
||||
<ClInclude Include="..\..\include\nana\extrlib\png.h" />
|
||||
<ClInclude Include="..\..\include\nana\extrlib\pngconf.h" />
|
||||
<ClInclude Include="..\..\include\nana\extrlib\pnglibconf.h" />
|
||||
<ClInclude Include="..\..\include\nana\extrlib\zlib.h" />
|
||||
<ClInclude Include="..\..\include\nana\filesystem\filesystem.hpp" />
|
||||
<ClInclude Include="..\..\include\nana\extrlib\zlib.h" />
|
||||
<ClInclude Include="..\..\include\nana\filesystem\filesystem.hpp" />
|
||||
<ClInclude Include="..\..\include\nana\filesystem\file_iterator.hpp" />
|
||||
<ClInclude Include="..\..\include\nana\filesystem\fs_utility.hpp" />
|
||||
<ClInclude Include="..\..\include\nana\fwd.hpp" />
|
||||
@ -383,4 +382,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
@ -119,7 +119,7 @@
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\detail\win32\platform_spec.cpp">
|
||||
<Filter>Source Files\nana\detail\win32</Filter>
|
||||
</ClCompile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\filesystem.cpp">
|
||||
<Filter>Source Files\nana\filesystem</Filter>
|
||||
</ClCompile>
|
||||
@ -261,9 +261,6 @@
|
||||
<ClCompile Include="..\..\source\paint\detail\native_paint_interface.cpp">
|
||||
<Filter>Source Files\nana\paint\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\gadget.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\graphics.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
@ -645,7 +642,7 @@
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\nana\extrlib\zlib.h">
|
||||
<Filter>Header Files\extrlib</Filter>
|
||||
</ClInclude>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\nana\filesystem\filesystem.hpp">
|
||||
<Filter>Header Files\filesystem</Filter>
|
||||
</ClInclude>
|
||||
@ -719,4 +716,4 @@
|
||||
<Filter>Header Files\gui\widgets</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
@ -1,9 +1,9 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.22823.1
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nana", "nana.vcxproj", "{25B21068-491B-4A9F-B99F-6C27BF31BAAD}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nana", "nana.vcxproj", "{98091380-2EC4-44B4-82A2-F0A6393BA908}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -13,14 +13,14 @@ Global
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Debug|x64.Build.0 = Debug|x64
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Debug|x86.Build.0 = Debug|Win32
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Release|x64.ActiveCfg = Release|x64
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Release|x64.Build.0 = Release|x64
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Release|x86.ActiveCfg = Release|Win32
|
||||
{25B21068-491B-4A9F-B99F-6C27BF31BAAD}.Release|x86.Build.0 = Release|Win32
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Debug|x64.Build.0 = Debug|x64
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Debug|x86.Build.0 = Debug|Win32
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Release|x64.ActiveCfg = Release|x64
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Release|x64.Build.0 = Release|x64
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Release|x86.ActiveCfg = Release|Win32
|
||||
{98091380-2EC4-44B4-82A2-F0A6393BA908}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -5,24 +5,24 @@
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{25B21068-491B-4A9F-B99F-6C27BF31BAAD}</ProjectGuid>
|
||||
<ProjectGuid>{98091380-2EC4-44B4-82A2-F0A6393BA908}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>nana</RootNamespace>
|
||||
<TargetPlatformVersion>8.1</TargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
@ -31,12 +31,6 @@
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
@ -44,6 +38,12 @@
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
@ -54,46 +54,30 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>../bin/</OutDir>
|
||||
<IncludePath>..\..\include;$(IncludePath)</IncludePath>
|
||||
<SourcePath>..\..\source;$(VC_SourcePath);</SourcePath>
|
||||
<TargetName>$(ProjectName)_$(PlatformToolset)_$(Configuration)_$(PlatformShortName)</TargetName>
|
||||
<IntDir>..\..\..\temp\$(ProjectName)\$(PlatformToolset)_$(Configuration)_$(PlatformShortName)\</IntDir>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<IncludePath>../../include;$(IncludePath)</IncludePath>
|
||||
<OutDir>..\bin\vc2015\</OutDir>
|
||||
<TargetName>lib$(ProjectName)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>..\..\include;$(IncludePath)</IncludePath>
|
||||
<SourcePath>..\..\source;$(VC_SourcePath);</SourcePath>
|
||||
<OutDir>../bin/</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformToolset)_$(Configuration)_$(PlatformShortName)</TargetName>
|
||||
<IntDir>..\..\..\temp\$(ProjectName)\$(PlatformToolset)_$(Configuration)_$(PlatformShortName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>../bin/</OutDir>
|
||||
<IncludePath>..\..\include;$(IncludePath)</IncludePath>
|
||||
<SourcePath>..\..\source;$(VC_SourcePath);</SourcePath>
|
||||
<TargetName>$(ProjectName)_$(PlatformToolset)_$(Configuration)_$(PlatformShortName)</TargetName>
|
||||
<IntDir>..\..\..\temp\$(ProjectName)\$(PlatformToolset)_$(Configuration)_$(PlatformShortName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<IncludePath>..\..\include;$(IncludePath)</IncludePath>
|
||||
<SourcePath>..\..\source;$(VC_SourcePath);</SourcePath>
|
||||
<OutDir>../bin/</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformToolset)_$(Configuration)_$(PlatformShortName)</TargetName>
|
||||
<IntDir>..\..\..\temp\$(ProjectName)\$(PlatformToolset)_$(Configuration)_$(PlatformShortName)\</IntDir>
|
||||
<IncludePath>../../include;$(IncludePath)</IncludePath>
|
||||
<OutDir>..\bin\vc2015\</OutDir>
|
||||
<TargetName>lib$(ProjectName)d</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
@ -102,17 +86,11 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Lib>
|
||||
<OutputFile>$(TargetPath)</OutputFile>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
@ -120,15 +98,14 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Lib>
|
||||
<OutputFile>$(TargetPath)</OutputFile>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@ -140,8 +117,6 @@
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -149,9 +124,6 @@
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Lib>
|
||||
<OutputFile>$(TargetPath)</OutputFile>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
@ -161,8 +133,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -171,7 +142,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Lib>
|
||||
<OutputFile>$(TargetPath)</OutputFile>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
@ -244,7 +215,6 @@
|
||||
<ClCompile Include="..\..\source\internationalization.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\detail\image_process_provider.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\detail\native_paint_interface.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\gadget.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\graphics.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\image.cpp" />
|
||||
<ClCompile Include="..\..\source\paint\image_process_selector.cpp" />
|
||||
@ -252,7 +222,6 @@
|
||||
<ClCompile Include="..\..\source\paint\text_renderer.cpp" />
|
||||
<ClCompile Include="..\..\source\system\dataexch.cpp" />
|
||||
<ClCompile Include="..\..\source\system\platform.cpp" />
|
||||
<ClCompile Include="..\..\source\system\shared_wrapper.cpp" />
|
||||
<ClCompile Include="..\..\source\system\timepiece.cpp" />
|
||||
<ClCompile Include="..\..\source\threads\pool.cpp" />
|
||||
<ClCompile Include="..\..\source\traits.cpp" />
|
||||
|
@ -13,298 +13,289 @@
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana">
|
||||
<UniqueIdentifier>{b0bd11b1-bcbb-4e05-885e-44295bc1a7bb}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\audio">
|
||||
<UniqueIdentifier>{9630500a-5aca-4625-a11b-1ba83a93895c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\audio">
|
||||
<UniqueIdentifier>{aab16aa3-c8d4-4495-8606-1b21ae739ee5}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\detail">
|
||||
<UniqueIdentifier>{d43db913-0472-45f6-889e-b147a7b3eb7e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\audio\detail">
|
||||
<UniqueIdentifier>{c395f107-7102-415b-a019-54e7cf3575af}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\filesystem">
|
||||
<UniqueIdentifier>{4e91af62-8e45-41d5-8bb9-1deb850de937}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\detail">
|
||||
<UniqueIdentifier>{e2569be2-9e68-477d-8b59-e248595de6c7}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\gui">
|
||||
<UniqueIdentifier>{c575e702-d7d3-48d2-a465-30e51ca72f8d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\detail\win32">
|
||||
<UniqueIdentifier>{52ed7f8e-fa48-495e-af1f-4df013205a35}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\paint">
|
||||
<UniqueIdentifier>{e1fbd69a-2a82-419e-854a-0b5dbd0e0237}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\filesystem">
|
||||
<UniqueIdentifier>{87d14798-9015-4162-b9ab-72c741cff063}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\system">
|
||||
<UniqueIdentifier>{295ba47e-9dc7-4375-82bc-443b767eb87d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\gui">
|
||||
<UniqueIdentifier>{4f8e7d23-9fe1-4409-bb03-2bd0809e606b}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\threads">
|
||||
<UniqueIdentifier>{b0854b25-60fc-47e2-a9df-5e4f2d28065c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\gui\detail">
|
||||
<UniqueIdentifier>{85c9c1bb-d87b-4481-bf3c-7425f680a12d}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\audio\detail">
|
||||
<UniqueIdentifier>{b3023f5e-2759-409d-b6e8-5ef2fe6601ae}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\gui\detail\win32">
|
||||
<UniqueIdentifier>{8058b530-86ec-4d72-890d-345aa30db056}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\detail\win32">
|
||||
<UniqueIdentifier>{2ce139f3-ef8e-48b7-a82a-68003eac75da}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\gui\widgets">
|
||||
<UniqueIdentifier>{87b124cb-408d-460b-a81b-8a788bbae0d9}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\gui\detail">
|
||||
<UniqueIdentifier>{b9f9a5a8-fd1a-4b99-b530-d8a4c45e62ec}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\gui\widgets\skeletons">
|
||||
<UniqueIdentifier>{b10db2f1-0542-421a-9e1d-4357e3be5f68}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\gui\widgets">
|
||||
<UniqueIdentifier>{4b04c197-4a1e-41f9-bfa3-d82c18bcad51}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\paint">
|
||||
<UniqueIdentifier>{59f186c8-f5f8-4499-8e19-f278d4754220}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\gui\detail\win32">
|
||||
<UniqueIdentifier>{cd6e7f3f-fe5b-44c6-ae8d-15554f926055}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\paint\detail">
|
||||
<UniqueIdentifier>{5acf1733-47b2-4872-a105-66c7ad15cd39}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\gui\widgets\skeletons">
|
||||
<UniqueIdentifier>{60f588f2-bdb9-4b1d-9e23-40a73f327283}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\system">
|
||||
<UniqueIdentifier>{a81fa10e-1274-44e0-92a0-434fa28f89ae}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\nana\threads">
|
||||
<UniqueIdentifier>{e95b4a72-643f-4416-af95-b0bbaf7f0c57}</UniqueIdentifier>
|
||||
<Filter Include="Source Files\paint\detail">
|
||||
<UniqueIdentifier>{53feb93f-2b86-4bf5-b2f3-f60ef1bbbf76}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\source\audio\detail\audio_device.cpp">
|
||||
<Filter>Source Files\nana\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\detail\audio_stream.cpp">
|
||||
<Filter>Source Files\nana\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\detail\buffer_preparation.cpp">
|
||||
<Filter>Source Files\nana\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\player.cpp">
|
||||
<Filter>Source Files\nana\audio</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\detail\win32\platform_spec.cpp">
|
||||
<Filter>Source Files\nana\detail\win32</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\file_iterator.cpp">
|
||||
<Filter>Source Files\nana\filesystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\fs_utility.cpp">
|
||||
<Filter>Source Files\nana\filesystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\win32\bedrock.cpp">
|
||||
<Filter>Source Files\nana\gui\detail\win32</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\basic_window.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\drawer.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\native_window_interface.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\window_manager.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\skeletons\text_editor.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets\skeletons</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\button.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\categorize.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\checkbox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\combox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\date_chooser.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\float_listbox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\form.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\frame.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\label.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\listbox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\menu.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\menubar.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\panel.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\picture.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\progress.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\scroll.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\slider.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\tabbar.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\textbox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\toolbar.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\treebox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\widget.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\animation.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\basis.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\dragger.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\drawing.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\effects.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\element.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\filebox.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\layout_utility.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\msgbox.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\place.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\programming_interface.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\timer.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\tooltip.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\wvl.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\detail\image_process_provider.cpp">
|
||||
<Filter>Source Files\nana\paint\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\detail\native_paint_interface.cpp">
|
||||
<Filter>Source Files\nana\paint\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\gadget.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\graphics.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\image.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\image_process_selector.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\pixel_buffer.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\text_renderer.cpp">
|
||||
<Filter>Source Files\nana\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\dataexch.cpp">
|
||||
<Filter>Source Files\nana\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\platform.cpp">
|
||||
<Filter>Source Files\nana\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\shared_wrapper.cpp">
|
||||
<Filter>Source Files\nana\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\timepiece.cpp">
|
||||
<Filter>Source Files\nana\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\threads\pool.cpp">
|
||||
<Filter>Source Files\nana\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\any.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\basic_types.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\charset.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\datetime.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\deploy.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\exceptions.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\traits.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\unicode_bidi.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\window_layout.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\element_store.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\bedrock_pi.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\events_operation.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\notifier.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\state_cursor.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\internationalization.cpp">
|
||||
<Filter>Source Files\nana</Filter>
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\color_schemes.cpp">
|
||||
<Filter>Source Files\nana\gui\detail</Filter>
|
||||
<ClCompile Include="..\..\source\traits.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\screen.cpp">
|
||||
<Filter>Source Files\nana\gui</Filter>
|
||||
<ClCompile Include="..\..\source\unicode_bidi.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\spinbox.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
<ClCompile Include="..\..\source\audio\detail\audio_device.cpp">
|
||||
<Filter>Source Files\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\detail\audio_stream.cpp">
|
||||
<Filter>Source Files\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\detail\buffer_preparation.cpp">
|
||||
<Filter>Source Files\audio\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\audio\player.cpp">
|
||||
<Filter>Source Files\audio</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\detail\win32\platform_spec.cpp">
|
||||
<Filter>Source Files\detail\win32</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\file_iterator.cpp">
|
||||
<Filter>Source Files\filesystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\filesystem.cpp">
|
||||
<Filter>Source Files\nana\filesystem</Filter>
|
||||
<Filter>Source Files\filesystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\filesystem\fs_utility.cpp">
|
||||
<Filter>Source Files\filesystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\basic_window.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\bedrock_pi.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\color_schemes.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\drawer.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\element_store.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\events_operation.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\native_window_interface.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\window_layout.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\window_manager.cpp">
|
||||
<Filter>Source Files\gui\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\detail\win32\bedrock.cpp">
|
||||
<Filter>Source Files\gui\detail\win32</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\skeletons\text_editor.cpp">
|
||||
<Filter>Source Files\gui\widgets\skeletons</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\button.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\categorize.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\checkbox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\combox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\date_chooser.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\float_listbox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\form.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\frame.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\group.cpp">
|
||||
<Filter>Source Files\nana\gui\widgets</Filter>
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\label.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\listbox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\menu.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\menubar.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\panel.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\picture.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\progress.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\scroll.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\slider.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\spinbox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\tabbar.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\textbox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\toolbar.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\treebox.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\widgets\widget.cpp">
|
||||
<Filter>Source Files\gui\widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\animation.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\basis.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\dragger.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\drawing.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\effects.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\element.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\filebox.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\layout_utility.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\msgbox.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\notifier.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\place.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\programming_interface.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\screen.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\state_cursor.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\timer.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\tooltip.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\gui\wvl.cpp">
|
||||
<Filter>Source Files\gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\threads\pool.cpp">
|
||||
<Filter>Source Files\threads</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\dataexch.cpp">
|
||||
<Filter>Source Files\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\platform.cpp">
|
||||
<Filter>Source Files\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\system\timepiece.cpp">
|
||||
<Filter>Source Files\system</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\detail\image_process_provider.cpp">
|
||||
<Filter>Source Files\paint\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\detail\native_paint_interface.cpp">
|
||||
<Filter>Source Files\paint\detail</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\graphics.cpp">
|
||||
<Filter>Source Files\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\image.cpp">
|
||||
<Filter>Source Files\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\image_process_selector.cpp">
|
||||
<Filter>Source Files\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\pixel_buffer.cpp">
|
||||
<Filter>Source Files\paint</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\source\paint\text_renderer.cpp">
|
||||
<Filter>Source Files\paint</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1 +0,0 @@
|
||||
The libpng.a is for MinGW(Not linux), and other .lib files are for VS2013
|
@ -1 +1,3 @@
|
||||
The libpng.a is for MinGW(Not linux), and other .lib files are for VS2013
|
||||
|
||||
You can download the precompiled external libraries at http://sourceforge.net/projects/nanapro/files/extrlib/
|
@ -106,6 +106,8 @@ namespace detail
|
||||
~drawable_impl_type();
|
||||
|
||||
void fgcolor(const ::nana::color&); //deprecated
|
||||
unsigned get_color() const;
|
||||
unsigned get_text_color() const;
|
||||
void set_color(const ::nana::color&);
|
||||
void set_text_color(const ::nana::color&);
|
||||
|
||||
|
@ -146,6 +146,7 @@ namespace detail
|
||||
|
||||
void fgcolor(const ::nana::color&); //deprecated
|
||||
unsigned get_color() const;
|
||||
unsigned get_text_color() const;
|
||||
void set_color(const ::nana::color&);
|
||||
void set_text_color(const ::nana::color&);
|
||||
|
||||
|
@ -161,6 +161,9 @@ namespace detail
|
||||
std::vector<std::pair<core_window_t*, unsigned long>> shortkeys(core_window_t*, bool with_children);
|
||||
|
||||
core_window_t* find_shortkey(native_window_type, unsigned long key);
|
||||
|
||||
void set_safe_place(core_window_t* wd, std::function<void()>&& fn);
|
||||
void call_safe_place(unsigned thread_id);
|
||||
private:
|
||||
void _m_disengage(core_window_t*, core_window_t* for_new);
|
||||
void _m_destroy(core_window_t*);
|
||||
|
@ -27,19 +27,35 @@ namespace nana
|
||||
|
||||
namespace element
|
||||
{
|
||||
namespace detail
|
||||
{
|
||||
class element_abstract
|
||||
{
|
||||
public:
|
||||
using graph_reference = ::nana::paint::graphics&;
|
||||
virtual ~element_abstract() = default;
|
||||
};
|
||||
|
||||
class factory_abstract
|
||||
{
|
||||
public:
|
||||
virtual ~factory_abstract() = default;
|
||||
|
||||
virtual void destroy(element_abstract *);
|
||||
};
|
||||
}
|
||||
|
||||
class element_interface
|
||||
: public detail::element_abstract
|
||||
{
|
||||
public:
|
||||
using graph_reference = paint::graphics&;
|
||||
|
||||
virtual ~element_interface() = default;
|
||||
virtual bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state) = 0;
|
||||
};
|
||||
|
||||
class crook_interface
|
||||
: public detail::element_abstract
|
||||
{
|
||||
public:
|
||||
using graph_reference = paint::graphics&;
|
||||
using state = checkstate;
|
||||
|
||||
struct data
|
||||
@ -47,25 +63,21 @@ namespace nana
|
||||
state check_state;
|
||||
bool radio;
|
||||
};
|
||||
|
||||
virtual ~crook_interface() = default;
|
||||
|
||||
virtual bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state, const data&) = 0;
|
||||
};
|
||||
|
||||
class border_interface
|
||||
: public detail::element_abstract
|
||||
{
|
||||
public:
|
||||
using graph_reference = paint::graphics&;
|
||||
|
||||
virtual ~border_interface() = default;
|
||||
virtual bool draw(graph_reference, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle&, element_state, unsigned weight) = 0;
|
||||
};
|
||||
|
||||
class arrow_interface
|
||||
: public detail::element_abstract
|
||||
{
|
||||
public:
|
||||
using graph_reference = paint::graphics&;
|
||||
virtual ~arrow_interface() = default;
|
||||
virtual bool draw(graph_reference, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle&, element_state, direction) = 0;
|
||||
};
|
||||
|
||||
@ -74,10 +86,10 @@ namespace nana
|
||||
public:
|
||||
template<typename ElementInterface>
|
||||
struct factory_interface
|
||||
: public detail::factory_abstract
|
||||
{
|
||||
virtual ~factory_interface(){}
|
||||
virtual ElementInterface* create() const = 0;
|
||||
virtual void destroy(ElementInterface*) const = 0;
|
||||
};
|
||||
|
||||
template<typename Element, typename ElementInterface>
|
||||
@ -85,38 +97,39 @@ namespace nana
|
||||
: public factory_interface<ElementInterface>
|
||||
{
|
||||
public:
|
||||
typedef factory_interface<ElementInterface> interface_type;
|
||||
using interface_type = factory_interface<ElementInterface>;
|
||||
|
||||
ElementInterface * create() const override
|
||||
{
|
||||
return (new Element);
|
||||
}
|
||||
|
||||
void destroy(ElementInterface * p) const override
|
||||
{
|
||||
delete p;
|
||||
}
|
||||
};
|
||||
|
||||
void add_crook(const std::string& name, const pat::cloneable<factory_interface<crook_interface>>&);
|
||||
crook_interface* const * keeper_crook(const std::string& name);
|
||||
void add_arrow(const std::string&, const pat::cloneable<factory_interface<arrow_interface>>&);
|
||||
arrow_interface* const * cite_arrow(const std::string&);
|
||||
|
||||
void add_border(const std::string&, const pat::cloneable<factory_interface<border_interface>>&);
|
||||
border_interface* const * keeper_border(const std::string&);
|
||||
|
||||
void add_arrow(const std::string&, const pat::cloneable<factory_interface<arrow_interface>>&);
|
||||
arrow_interface* const * keeper_arrow(const std::string&);
|
||||
border_interface* const * cite_border(const std::string&);
|
||||
|
||||
void add_button(const std::string&, const pat::cloneable<factory_interface<element_interface>>&);
|
||||
element_interface* const* keeper_button(const std::string&);
|
||||
element_interface* const* cite_button(const std::string&);
|
||||
|
||||
void add_x_icon(const std::string& name, const pat::cloneable<factory_interface<element_interface>>&);
|
||||
element_interface* const* cite_x_icon(const std::string&);
|
||||
|
||||
void add_crook(const std::string& name, const pat::cloneable<factory_interface<crook_interface>>&);
|
||||
crook_interface* const * cite_crook(const std::string& name);
|
||||
|
||||
void add_cross(const std::string& name, const pat::cloneable<factory_interface<element_interface>>&);
|
||||
element_interface* const* cite_cross(const std::string&);
|
||||
};
|
||||
|
||||
class crook;
|
||||
template<typename UserElement>
|
||||
void add_crook(const std::string& name)
|
||||
class arrow;
|
||||
template<typename ArrowElement>
|
||||
void add_arrow(const std::string& name)
|
||||
{
|
||||
using factory_t = provider::factory<UserElement, crook_interface>;
|
||||
provider().add_crook(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
using factory_t = provider::factory<ArrowElement, arrow_interface>;
|
||||
provider().add_arrow(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class border;
|
||||
@ -127,14 +140,6 @@ namespace nana
|
||||
provider().add_border(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class arrow;
|
||||
template<typename ArrowElement>
|
||||
void add_arrow(const std::string& name)
|
||||
{
|
||||
using factory_t = provider::factory<ArrowElement, arrow_interface>;
|
||||
provider().add_arrow(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class button;
|
||||
template<typename ButtonElement>
|
||||
void add_button(const std::string& name)
|
||||
@ -142,6 +147,30 @@ namespace nana
|
||||
using factory_t = provider::factory<ButtonElement, element_interface>;
|
||||
provider().add_button(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class x_icon;
|
||||
template<typename UserElement>
|
||||
void add_x_icon(const std::string& name)
|
||||
{
|
||||
using factory_t = provider::factory<UserElement, element_interface>;
|
||||
provider().add_x_icon(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class crook;
|
||||
template<typename UserElement>
|
||||
void add_crook(const std::string& name)
|
||||
{
|
||||
using factory_t = provider::factory<UserElement, crook_interface>;
|
||||
provider().add_crook(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
|
||||
class cross;
|
||||
template<typename UserElement>
|
||||
void add_cross(const std::string& name)
|
||||
{
|
||||
using factory_t = provider::factory<UserElement, element_interface>;
|
||||
provider().add_cross(name, pat::cloneable<typename factory_t::interface_type>(factory_t()));
|
||||
}
|
||||
}//end namespace element
|
||||
|
||||
template<typename Element> class facade;
|
||||
@ -169,9 +198,27 @@ namespace nana
|
||||
bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle& r, element_state) override;
|
||||
private:
|
||||
element::crook_interface::data data_;
|
||||
element::crook_interface* const * keeper_;
|
||||
element::crook_interface* const * cite_;
|
||||
}; //end class facade<element::crook>
|
||||
|
||||
template<> class facade<element::cross>
|
||||
: public element::element_interface
|
||||
{
|
||||
public:
|
||||
facade(const char* name = nullptr);
|
||||
void switch_to(const char*);
|
||||
|
||||
void thickness(unsigned thk);
|
||||
void size(unsigned size_pixels);
|
||||
public:
|
||||
//Implement element_interface
|
||||
bool draw(graph_reference, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle&, element_state) override;
|
||||
private:
|
||||
unsigned thickness_{6};
|
||||
unsigned size_{ 14 };
|
||||
element::element_interface* const * cite_;
|
||||
};
|
||||
|
||||
template<>
|
||||
class facade<element::border>
|
||||
: public element::element_interface
|
||||
@ -185,7 +232,7 @@ namespace nana
|
||||
//Implement element_interface
|
||||
bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state) override;
|
||||
private:
|
||||
element::border_interface* const * keeper_;
|
||||
element::border_interface* const * cite_;
|
||||
};//end class facade<element::border>
|
||||
|
||||
template<>
|
||||
@ -207,7 +254,7 @@ namespace nana
|
||||
//Implement element_interface
|
||||
bool draw(graph_reference, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle&, element_state) override;
|
||||
private:
|
||||
element::arrow_interface* const * keeper_;
|
||||
element::arrow_interface* const * cite_;
|
||||
::nana::direction dir_{::nana::direction::north};
|
||||
};//end class facade<element::arrow>
|
||||
|
||||
@ -222,9 +269,22 @@ namespace nana
|
||||
//Implement element_interface
|
||||
bool draw(graph_reference, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle&, element_state) override;
|
||||
private:
|
||||
element::element_interface* const * keeper_;
|
||||
element::element_interface* const * cite_;
|
||||
};//end class facade<element::button>
|
||||
|
||||
template<>
|
||||
class facade<element::x_icon>
|
||||
: public element::element_interface
|
||||
{
|
||||
public:
|
||||
facade(const char* name = nullptr);
|
||||
void switch_to(const char*);
|
||||
public:
|
||||
//Implement element_interface
|
||||
bool draw(graph_reference, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle&, element_state) override;
|
||||
private:
|
||||
element::element_interface* const * cite_;
|
||||
};//end class facade<element::button>
|
||||
|
||||
namespace element
|
||||
{
|
||||
|
@ -109,9 +109,11 @@ namespace nana
|
||||
window window_handle() const;
|
||||
|
||||
void div(const char* s); ///< Divides the attached widget into fields.
|
||||
void modify(const char* field_name, const char* div_text); ///< Modifies a specified field.
|
||||
|
||||
field_reference field(const char* name);///< Returns a field with the specified name.
|
||||
|
||||
void field_visible(const char* filed_name, bool visible); ///<<Shows/Hides an existing field.
|
||||
void field_visible(const char* field_name, bool visible); ///<<Shows/Hides an existing field.
|
||||
bool field_visible(const char* field_name) const; ///<Determines whether the specified field is visible.
|
||||
|
||||
void field_display(const char* field_name, bool display); ///<Displays/Discards an existing field.
|
||||
@ -122,6 +124,19 @@ namespace nana
|
||||
void erase(window handle); ///< Erases a window from field.
|
||||
|
||||
field_reference operator[](const char* name); ///< Returns a field with the specified name. Equal to field();
|
||||
|
||||
/// Add a panel factory
|
||||
template<typename Panel, typename ...Args>
|
||||
place& dock(const std::string& dockname, const std::string& factory_name, Args&& ... args)
|
||||
{
|
||||
return dock(dockname, factory_name, std::bind([](window parent, Args & ... args)
|
||||
{
|
||||
return std::unique_ptr<widget>(new Panel(parent, std::forward<Args>(args)...));
|
||||
}, std::placeholders::_1, args...));
|
||||
}
|
||||
|
||||
place& dock(const std::string& dockname, std::string factory_name, std::function<std::unique_ptr<widget>(window)> factory);
|
||||
place& dock_create(const std::string& factory);
|
||||
private:
|
||||
implement * impl_;
|
||||
};
|
||||
|
@ -29,6 +29,13 @@ namespace nana
|
||||
/// Traits for widget classes
|
||||
template<typename Widget>
|
||||
struct widget_traits
|
||||
{
|
||||
using event_type = typename Widget::event_type;
|
||||
using scheme_type = typename Widget::scheme_type;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct widget_traits<widget>
|
||||
{
|
||||
using event_type = ::nana::general_events;
|
||||
using scheme_type = ::nana::widget_colors;
|
||||
@ -191,7 +198,7 @@ namespace API
|
||||
}
|
||||
|
||||
point window_position(window);
|
||||
void move_window(window, int x, int y);
|
||||
void move_window(window, const point&);
|
||||
void move_window(window wd, const rectangle&);
|
||||
|
||||
void bring_top(window, bool activated);
|
||||
@ -298,6 +305,8 @@ namespace API
|
||||
|
||||
bool ignore_mouse_focus(window, bool ignore); ///< Enables/disables the mouse focus, it returns the previous state
|
||||
bool ignore_mouse_focus(window); ///< Determines whether the mouse focus is enabled
|
||||
|
||||
void at_safe_place(window, std::function<void()>);
|
||||
}//end namespace API
|
||||
}//end namespace nana
|
||||
|
||||
|
@ -229,7 +229,8 @@ namespace nana
|
||||
nana::any * _m_anyobj(std::size_t pos, bool alloc_if_empty) const override;
|
||||
};
|
||||
|
||||
namespace dev
|
||||
/*
|
||||
namespace dev //deprecated
|
||||
{
|
||||
template<>
|
||||
struct widget_traits<combox>
|
||||
@ -238,5 +239,6 @@ namespace nana
|
||||
using scheme_type = ::nana::widgets::skeletons::text_editor_scheme;
|
||||
};
|
||||
}
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
@ -664,14 +664,16 @@ By \a clicking on one header the list get \a reordered, first up, and then down
|
||||
void _m_erase_key(nana::detail::key_interface*);
|
||||
};
|
||||
|
||||
/*
|
||||
namespace dev
|
||||
{
|
||||
template<>
|
||||
struct widget_traits<listbox>
|
||||
struct widget_traits<listbox> //deprecated
|
||||
{
|
||||
using event_type = drawerbase::listbox::listbox_events;
|
||||
using scheme_type = drawerbase::listbox::scheme;
|
||||
};
|
||||
}
|
||||
*/
|
||||
}//end namespace nana
|
||||
#endif
|
||||
|
@ -14,7 +14,6 @@
|
||||
#define NANA_GUI_WIDGET_SCROLL_HPP
|
||||
|
||||
#include "widget.hpp"
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include <nana/gui/timer.hpp>
|
||||
|
||||
namespace nana
|
||||
@ -444,7 +443,7 @@ namespace nana
|
||||
/// @return true if the vlaue is changed.
|
||||
bool make_page_scroll(bool forward)
|
||||
{
|
||||
return this->make_step(forward, range() - 1);
|
||||
return this->make_step(forward, static_cast<unsigned>(range() - 1));
|
||||
}
|
||||
};//end class scroll
|
||||
}//end namespace nana
|
||||
|
@ -110,15 +110,17 @@ namespace nana
|
||||
void _m_caption(::nana::string&&);
|
||||
}; //end class spinbox
|
||||
|
||||
/*
|
||||
namespace dev
|
||||
{
|
||||
template<>
|
||||
struct widget_traits<spinbox>
|
||||
struct widget_traits<spinbox> //deprecated
|
||||
{
|
||||
using event_type = drawerbase::spinbox::spinbox_events;
|
||||
using scheme_type = ::nana::widgets::skeletons::text_editor_scheme;
|
||||
};
|
||||
}
|
||||
*/
|
||||
}//end namespace nana
|
||||
|
||||
#endif //NANA_GUI_WIDGET_SPINBOX_HPP
|
||||
|
@ -14,7 +14,6 @@
|
||||
#ifndef NANA_GUI_WIDGET_TABBAR_HPP
|
||||
#define NANA_GUI_WIDGET_TABBAR_HPP
|
||||
#include "widget.hpp"
|
||||
#include "../../paint/gadget.hpp"
|
||||
#include <nana/pat/cloneable.hpp>
|
||||
#include <nana/any.hpp>
|
||||
|
||||
@ -30,7 +29,7 @@ namespace nana
|
||||
T & value;
|
||||
|
||||
arg_tabbar(tabbar<T>& wdg, T& v)
|
||||
: widget{ wdg }, value{ v }
|
||||
: widget(wdg), value{ v }
|
||||
{}
|
||||
};
|
||||
|
||||
@ -337,15 +336,19 @@ namespace nana
|
||||
|
||||
|
||||
namespace nana
|
||||
{
|
||||
namespace ng
|
||||
{
|
||||
{
|
||||
namespace drawerbase
|
||||
{
|
||||
namespace tabbar_lite
|
||||
{
|
||||
class model;
|
||||
|
||||
struct events
|
||||
: public general_events
|
||||
{
|
||||
basic_event<event_arg> selected;
|
||||
};
|
||||
|
||||
class driver
|
||||
: public drawer_trigger
|
||||
{
|
||||
@ -353,7 +356,7 @@ namespace nana
|
||||
driver();
|
||||
~driver();
|
||||
|
||||
model* get_model();
|
||||
model* get_model() const throw();
|
||||
private:
|
||||
//Overrides drawer_trigger's method
|
||||
void attached(widget_reference, graph_reference) override;
|
||||
@ -367,18 +370,39 @@ namespace nana
|
||||
}
|
||||
}//end namespace drawerbase
|
||||
|
||||
class tabbar_lite
|
||||
: public widget_object<category::widget_tag, drawerbase::tabbar_lite::driver>
|
||||
class tabbar_lite
|
||||
: public widget_object<category::widget_tag, drawerbase::tabbar_lite::driver, drawerbase::tabbar_lite::events>
|
||||
{
|
||||
public:
|
||||
tabbar_lite() = default;
|
||||
tabbar_lite(window, bool visible = true, const::nana::rectangle& = {});
|
||||
|
||||
public: //capacity
|
||||
std::size_t length() const;
|
||||
|
||||
public: //modifiers
|
||||
void attach(std::size_t pos, window);
|
||||
window attach(std::size_t pos) const;
|
||||
|
||||
void push_back(std::string text, ::nana::any par = {});
|
||||
void push_front(std::string text, ::nana::any par = {});
|
||||
|
||||
std::size_t selected() const;
|
||||
void erase(std::size_t pos, bool close_attached = true);
|
||||
};
|
||||
|
||||
/*
|
||||
namespace dev
|
||||
{
|
||||
/// Traits for widget classes
|
||||
template<>
|
||||
struct widget_traits<tabbar_lite> //deprecated
|
||||
{
|
||||
public:
|
||||
tabbar_lite() = default;
|
||||
tabbar_lite(window, bool visible = true, const::nana::rectangle& = {});
|
||||
|
||||
|
||||
void push_back(std::string text, ::nana::any par = {});
|
||||
void push_front(std::string text, ::nana::any par = {});
|
||||
using event_type = drawerbase::tabbar_lite::events;
|
||||
using scheme_type = ::nana::widget_colors;
|
||||
};
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -195,15 +195,17 @@ namespace nana
|
||||
void _m_typeface(const paint::font&) override;
|
||||
};
|
||||
|
||||
/*
|
||||
namespace dev
|
||||
{
|
||||
/// Traits for widget classes
|
||||
template<>
|
||||
struct widget_traits<textbox>
|
||||
struct widget_traits<textbox> //deprecated
|
||||
{
|
||||
using event_type = drawerbase::textbox::textbox_events;
|
||||
using scheme_type = ::nana::widgets::skeletons::text_editor_scheme;
|
||||
};
|
||||
}
|
||||
*/
|
||||
}//end namespace nana
|
||||
#endif
|
||||
|
@ -19,7 +19,6 @@
|
||||
#define NANA_GUI_WIDGETS_TREEBOX_HPP
|
||||
#include "widget.hpp"
|
||||
#include "detail/compset.hpp"
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include "detail/tree_cont.hpp"
|
||||
#include <nana/gui/timer.hpp>
|
||||
#include <nana/any.hpp>
|
||||
|
@ -134,7 +134,8 @@ namespace nana
|
||||
protected:
|
||||
typedef DrawerTrigger drawer_trigger_t;
|
||||
public:
|
||||
using scheme_type = Scheme;
|
||||
using scheme_type = Scheme;
|
||||
using event_type = Events;
|
||||
|
||||
widget_object()
|
||||
: events_{ std::make_shared<Events>() },
|
||||
@ -147,7 +148,7 @@ namespace nana
|
||||
API::close_window(handle_);
|
||||
}
|
||||
|
||||
Events& events() const
|
||||
event_type& events() const
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
@ -228,6 +229,7 @@ namespace nana
|
||||
typedef DrawerTrigger drawer_trigger_t;
|
||||
public:
|
||||
using scheme_type = Scheme;
|
||||
using event_type = Events;
|
||||
|
||||
widget_object()
|
||||
: events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
|
||||
@ -239,7 +241,7 @@ namespace nana
|
||||
API::close_window(handle_);
|
||||
}
|
||||
|
||||
Events& events() const
|
||||
event_type& events() const
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
@ -297,6 +299,7 @@ namespace nana
|
||||
typedef DrawerTrigger drawer_trigger_t;
|
||||
public:
|
||||
using scheme_type = Scheme;
|
||||
using event_type = Events;
|
||||
|
||||
widget_object()
|
||||
{
|
||||
@ -322,7 +325,7 @@ namespace nana
|
||||
API::close_window(handle_);
|
||||
}
|
||||
|
||||
Events& events() const
|
||||
event_type& events() const
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
@ -451,6 +454,7 @@ namespace nana
|
||||
typedef int drawer_trigger_t;
|
||||
public:
|
||||
using scheme_type = Scheme;
|
||||
using event_type = Events;
|
||||
|
||||
widget_object()
|
||||
: events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
|
||||
@ -462,7 +466,7 @@ namespace nana
|
||||
API::close_window(handle_);
|
||||
}
|
||||
|
||||
Events& events() const
|
||||
event_type& events() const
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* Graphics Gadget Implementation
|
||||
* Nana C++ Library(http://www.nanapro.org)
|
||||
* Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
|
||||
*
|
||||
* Distributed under the Boost Software License, Version 1.0.
|
||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||
* http://www.boost.org/LICENSE_1_0.txt)
|
||||
*
|
||||
* @file: nana/paint/gadget.hpp
|
||||
*/
|
||||
|
||||
#ifndef NANA_PAINT_GADGET_HPP
|
||||
#define NANA_PAINT_GADGET_HPP
|
||||
#include "graphics.hpp"
|
||||
#include "image.hpp"
|
||||
#include <nana/basic_types.hpp>
|
||||
|
||||
namespace nana
|
||||
{
|
||||
namespace paint
|
||||
{
|
||||
namespace gadget
|
||||
{
|
||||
void close_16_pixels(::nana::paint::graphics&, int x, int y, unsigned style, const color&);
|
||||
void cross(::nana::paint::graphics&, int x, int y, unsigned size, unsigned thickness, const nana::color&);
|
||||
|
||||
}//end namespace gadget
|
||||
|
||||
}//end namespace paint
|
||||
}//end namespace nana
|
||||
|
||||
#endif
|
@ -136,8 +136,11 @@ namespace nana
|
||||
/// @param file_utf8 A UTF-8 string to a filename
|
||||
void save_as_file(const char* file_utf8) const throw();
|
||||
|
||||
void set_color(const ::nana::color&);
|
||||
void set_text_color(const ::nana::color&);
|
||||
void set_color(const ::nana::color&); //deprecated, graphics::palette() instead
|
||||
void set_text_color(const ::nana::color&); //deprecated, graphics::palette() instead
|
||||
|
||||
::nana::color palette(bool for_text) const;
|
||||
graphics& palette(bool for_text, const ::nana::color&);
|
||||
|
||||
unsigned bidi_string(const nana::point&, const char_t *, std::size_t len);
|
||||
unsigned bidi_string(const point& pos, const char*, std::size_t len);
|
||||
|
@ -21,62 +21,50 @@ namespace nana{ namespace pat{
|
||||
|
||||
namespace detail
|
||||
{
|
||||
template<typename T>
|
||||
class cloneable_interface
|
||||
{
|
||||
public:
|
||||
typedef T interface_t;
|
||||
typedef cloneable_interface cloneable_t;
|
||||
virtual ~cloneable_interface() = default;
|
||||
virtual interface_t& refer() = 0;
|
||||
virtual const interface_t& refer() const = 0;
|
||||
virtual cloneable_t* clone() const = 0;
|
||||
virtual void * get() = 0;
|
||||
virtual cloneable_interface* clone() const = 0;
|
||||
virtual void self_delete() const = 0;
|
||||
};
|
||||
|
||||
struct cloneable_interface_deleter
|
||||
{
|
||||
void operator()(cloneable_interface * p)
|
||||
{
|
||||
if (p)
|
||||
p->self_delete();
|
||||
}
|
||||
};
|
||||
|
||||
template<typename T, typename SuperOfT>
|
||||
template<typename T>
|
||||
class cloneable_wrapper
|
||||
: public cloneable_interface<SuperOfT>
|
||||
: public cloneable_interface
|
||||
{
|
||||
public:
|
||||
typedef T value_t;
|
||||
typedef typename cloneable_interface<SuperOfT>::interface_t interface_t;
|
||||
using value_type = T;
|
||||
|
||||
cloneable_wrapper()
|
||||
cloneable_wrapper() = default;
|
||||
|
||||
cloneable_wrapper(const value_type& obj)
|
||||
:value_obj_(obj)
|
||||
{}
|
||||
|
||||
cloneable_wrapper(const value_t& obj)
|
||||
:object_(obj)
|
||||
cloneable_wrapper(value_type&& rv)
|
||||
:value_obj_(std::move(rv))
|
||||
{}
|
||||
|
||||
cloneable_wrapper(value_t&& rv)
|
||||
:object_(std::move(rv))
|
||||
{}
|
||||
|
||||
template<typename U>
|
||||
cloneable_wrapper(const U& u)
|
||||
: object_(u)
|
||||
{}
|
||||
|
||||
template<typename U>
|
||||
cloneable_wrapper(U& u)
|
||||
:object_(u)
|
||||
{}
|
||||
|
||||
virtual interface_t& refer() override
|
||||
private:
|
||||
//Implement cloneable_interface
|
||||
virtual void* get() override
|
||||
{
|
||||
return object_;
|
||||
return &value_obj_;
|
||||
}
|
||||
|
||||
virtual const interface_t& refer() const override
|
||||
virtual cloneable_interface* clone() const override
|
||||
{
|
||||
return object_;
|
||||
}
|
||||
|
||||
virtual cloneable_interface<interface_t>* clone() const override
|
||||
{
|
||||
return (new cloneable_wrapper(object_));
|
||||
return (new cloneable_wrapper{ value_obj_ });
|
||||
}
|
||||
|
||||
virtual void self_delete() const override
|
||||
@ -84,28 +72,20 @@ namespace nana{ namespace pat{
|
||||
(delete this);
|
||||
}
|
||||
private:
|
||||
value_t object_;
|
||||
value_type value_obj_;
|
||||
};
|
||||
|
||||
}//end namespace detail
|
||||
|
||||
template<typename Base, bool Mutable = false>
|
||||
class cloneable
|
||||
{
|
||||
using base_t = Base;
|
||||
using interface_t = detail::cloneable_interface < base_t > ;
|
||||
using cloneable_interface = detail::cloneable_interface;
|
||||
|
||||
using const_base_ptr = typename std::conditional<Mutable, base_t*, const base_t*>::type;
|
||||
using const_base_ref = typename std::conditional<Mutable, base_t&, const base_t&>::type;
|
||||
|
||||
struct deleter
|
||||
{
|
||||
void operator()(interface_t * p)
|
||||
{
|
||||
if(p)
|
||||
p->self_delete();
|
||||
}
|
||||
};
|
||||
template<typename OtherBase, bool OtherMutable> friend class cloneable;
|
||||
|
||||
struct inner_bool
|
||||
{
|
||||
@ -125,16 +105,16 @@ namespace nana{ namespace pat{
|
||||
|
||||
template<typename T, typename member_enabled<T>::type* = nullptr>
|
||||
cloneable(T&& t)
|
||||
: cwrapper_(new detail::cloneable_wrapper<typename std::remove_cv<typename std::remove_reference<T>::type>::type, base_t>(std::forward<T>(t)), deleter()),
|
||||
fast_ptr_(&(cwrapper_->refer()))
|
||||
: cwrapper_(new detail::cloneable_wrapper<typename std::remove_cv<typename std::remove_reference<T>::type>::type>(std::forward<T>(t)), detail::cloneable_interface_deleter()),
|
||||
fast_ptr_(reinterpret_cast<typename std::remove_cv<typename std::remove_reference<T>::type>::type*>(cwrapper_->get()))
|
||||
{}
|
||||
|
||||
cloneable(const cloneable& r)
|
||||
{
|
||||
if(r.cwrapper_)
|
||||
{
|
||||
cwrapper_ = std::shared_ptr<interface_t>(r.cwrapper_->clone(), deleter());
|
||||
fast_ptr_ = &(cwrapper_->refer());
|
||||
cwrapper_ = std::move(std::shared_ptr<cloneable_interface>(r.cwrapper_->clone(), detail::cloneable_interface_deleter{}));
|
||||
fast_ptr_ = reinterpret_cast<base_t*>(cwrapper_->get());
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,12 +125,27 @@ namespace nana{ namespace pat{
|
||||
r.fast_ptr_ = nullptr;
|
||||
}
|
||||
|
||||
template<typename OtherBase, typename std::enable_if<std::is_base_of<base_t, OtherBase>::value>::type* = nullptr>
|
||||
cloneable(const cloneable<OtherBase, Mutable>& other)
|
||||
{
|
||||
if (other)
|
||||
{
|
||||
char* value_ptr = reinterpret_cast<char*>(other.cwrapper_->get());
|
||||
char* base_ptr = reinterpret_cast<char*>(other.fast_ptr_);
|
||||
|
||||
auto ptr_diff = std::distance(base_ptr, value_ptr);
|
||||
|
||||
cwrapper_.reset(other.cwrapper_->clone(), detail::cloneable_interface_deleter{});
|
||||
fast_ptr_ = reinterpret_cast<OtherBase*>(reinterpret_cast<char*>(cwrapper_->get()) - ptr_diff);
|
||||
}
|
||||
}
|
||||
|
||||
cloneable & operator=(const cloneable& r)
|
||||
{
|
||||
if((this != &r) && r.cwrapper_)
|
||||
{
|
||||
cwrapper_ = std::shared_ptr<interface_t>(r.cwrapper_->clone(), deleter());
|
||||
fast_ptr_ = &(cwrapper_->refer());
|
||||
cwrapper_ = std::shared_ptr<cloneable_interface>(r.cwrapper_->clone(), detail::cloneable_interface_deleter());
|
||||
fast_ptr_ = reinterpret_cast<base_t*>(cwrapper_->get());
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@ -159,10 +154,8 @@ namespace nana{ namespace pat{
|
||||
{
|
||||
if(this != &r)
|
||||
{
|
||||
cwrapper_ = r.cwrapper_;
|
||||
cwrapper_ = std::move(r.cwrapper_);
|
||||
fast_ptr_ = r.fast_ptr_;
|
||||
|
||||
r.cwrapper_.reset();
|
||||
r.fast_ptr_ = nullptr;
|
||||
}
|
||||
return *this;
|
||||
@ -204,12 +197,12 @@ namespace nana{ namespace pat{
|
||||
return (fast_ptr_ ? &inner_bool::true_stand : nullptr);
|
||||
}
|
||||
private:
|
||||
std::shared_ptr<interface_t> cwrapper_;
|
||||
std::shared_ptr<cloneable_interface> cwrapper_;
|
||||
base_t * fast_ptr_{nullptr};
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
using mutable_cloneable = cloneable < T, true > ;
|
||||
using mutable_cloneable = cloneable<T, true>;
|
||||
}//end namespace pat
|
||||
}//end namespace nana
|
||||
|
||||
|
@ -302,14 +302,24 @@ namespace detail
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned drawable_impl_type::get_color() const
|
||||
{
|
||||
return color_;
|
||||
}
|
||||
|
||||
unsigned drawable_impl_type::get_text_color() const
|
||||
{
|
||||
return text_color_;
|
||||
}
|
||||
|
||||
void drawable_impl_type::set_color(const ::nana::color& clr)
|
||||
{
|
||||
color_ = clr.px_color().value;
|
||||
color_ = (clr.px_color().value & 0xFFFFFF);
|
||||
}
|
||||
|
||||
void drawable_impl_type::set_text_color(const ::nana::color& clr)
|
||||
{
|
||||
text_color_ = clr.px_color().value;
|
||||
text_color_ = (clr.px_color().value & 0xFFFFFF);
|
||||
update_text_color();
|
||||
}
|
||||
|
||||
|
@ -63,14 +63,19 @@ namespace detail
|
||||
return color_;
|
||||
}
|
||||
|
||||
unsigned drawable_impl_type::get_text_color() const
|
||||
{
|
||||
return text_color_;
|
||||
}
|
||||
|
||||
void drawable_impl_type::set_color(const ::nana::color& clr)
|
||||
{
|
||||
color_ = clr.px_color().value;
|
||||
color_ = (clr.px_color().value & 0xFFFFFF);
|
||||
}
|
||||
|
||||
void drawable_impl_type::set_text_color(const ::nana::color& clr)
|
||||
{
|
||||
auto rgb = clr.px_color().value;
|
||||
auto rgb = (clr.px_color().value & 0xFFFFFF);
|
||||
if (text_color_ != rgb)
|
||||
{
|
||||
::SetTextColor(context, NANA_RGB(rgb));
|
||||
|
@ -1207,8 +1207,11 @@ namespace detail
|
||||
if(context) context->event_window = pre_event_window;
|
||||
}
|
||||
|
||||
auto thread_id = ::nana::system::this_thread_id()
|
||||
brock.wd_manager.call_safe_place(thread_id);
|
||||
|
||||
if(msgwnd)
|
||||
brock.wd_manager.remove_trash_handle(::nana::system::this_thread_id());
|
||||
brock.wd_manager.remove_trash_handle(thread_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -542,32 +542,6 @@ namespace nana{
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
bool native_interface::window_icon(native_window_type wd, const paint::image& big_icon, const paint::image& small_icon) //deprecated
|
||||
{
|
||||
#if defined(NANA_WINDOWS)
|
||||
HICON h_big_icon = paint::image_accessor::icon(big_icon);
|
||||
HICON h_small_icon = paint::image_accessor::icon(small_icon);
|
||||
if (h_big_icon || h_small_icon)
|
||||
{
|
||||
nana::detail::platform_spec::instance().keep_window_icon(wd, (!big_icon.empty() ? big_icon : small_icon));
|
||||
if (h_big_icon) {
|
||||
::SendMessage(reinterpret_cast<HWND>(wd), WM_SETICON, ICON_BIG, reinterpret_cast<LPARAM>(h_big_icon));
|
||||
}
|
||||
if (h_small_icon) {
|
||||
::SendMessage(reinterpret_cast<HWND>(wd), WM_SETICON, ICON_SMALL, reinterpret_cast<WPARAM>(h_small_icon));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#elif defined(NANA_X11)
|
||||
return window_icon(wd, big_icon);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
void native_interface::activate_owner(native_window_type wd)
|
||||
{
|
||||
#if defined(NANA_WINDOWS)
|
||||
|
@ -413,6 +413,7 @@ namespace detail
|
||||
::DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
wd_manager.call_safe_place(tid);
|
||||
wd_manager.remove_trash_handle(tid);
|
||||
if (msg.message == WM_DESTROY && msg.hwnd == native_handle)
|
||||
break;
|
||||
@ -432,6 +433,7 @@ namespace detail
|
||||
::DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
wd_manager.call_safe_place(tid);
|
||||
wd_manager.remove_trash_handle(tid);
|
||||
}//end while
|
||||
|
||||
|
@ -44,6 +44,8 @@ namespace detail
|
||||
handle_manager<core_window_t*, window_manager, window_handle_deleter> wd_register;
|
||||
paint::image default_icon_big;
|
||||
paint::image default_icon_small;
|
||||
|
||||
std::map<core_window_t*, std::vector<std::function<void()>>> safe_place;
|
||||
};
|
||||
//end struct wdm_private_impl
|
||||
|
||||
@ -1192,6 +1194,36 @@ namespace detail
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void window_manager::set_safe_place(core_window_t* wd, std::function<void()>&& fn)
|
||||
{
|
||||
if (fn)
|
||||
{
|
||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||
if (!available(wd))
|
||||
return;
|
||||
|
||||
impl_->safe_place[wd].emplace_back(std::move(fn));
|
||||
}
|
||||
}
|
||||
|
||||
void window_manager::call_safe_place(unsigned thread_id)
|
||||
{
|
||||
std::lock_guard<decltype(mutex_)> lock(mutex_);
|
||||
|
||||
for (auto i = impl_->safe_place.begin(); i != impl_->safe_place.end();)
|
||||
{
|
||||
if (i->first->thread_id == thread_id)
|
||||
{
|
||||
for (auto & fn : i->second)
|
||||
fn();
|
||||
|
||||
i = impl_->safe_place.erase(i);
|
||||
}
|
||||
else
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
bool check_tree(basic_window* wd, basic_window* const cond)
|
||||
{
|
||||
if (wd == cond) return true;
|
||||
|
@ -164,7 +164,7 @@ namespace nana
|
||||
if (!t.restrict_area.empty())
|
||||
_m_check_restrict_area(wdps, API::window_size(t.wd), t.restrict_area);
|
||||
|
||||
API::move_window(t.wd, wdps.x, wdps.y);
|
||||
API::move_window(t.wd, wdps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,14 @@ namespace nana
|
||||
//Element definitions
|
||||
namespace element
|
||||
{
|
||||
namespace detail
|
||||
{
|
||||
void factory_abstract::destroy(element_abstract* ptr)
|
||||
{
|
||||
delete ptr;
|
||||
}
|
||||
}
|
||||
|
||||
class crook
|
||||
: public crook_interface
|
||||
{
|
||||
@ -141,7 +149,7 @@ namespace nana
|
||||
}
|
||||
else
|
||||
{
|
||||
::nana::color highlighted(static_cast<color_rgb>(0x5eb6f7));
|
||||
::nana::color highlighted(0x5e, 0xb6, 0xf7);
|
||||
auto bld_bgcolor = bgcolor;
|
||||
auto bld_fgcolor = fgcolor;
|
||||
switch(es)
|
||||
@ -156,7 +164,7 @@ namespace nana
|
||||
bld_fgcolor = fgcolor.blend(highlighted, 0.4);
|
||||
break;
|
||||
case element_state::disabled:
|
||||
bld_bgcolor = bld_fgcolor.from_rgb(0xb2, 0xb7, 0xbc);
|
||||
bld_bgcolor = bld_fgcolor = nana::color(0xb2, 0xb7, 0xbc);
|
||||
break;
|
||||
default:
|
||||
//Leave things as they are
|
||||
@ -529,14 +537,71 @@ namespace nana
|
||||
return true;
|
||||
}
|
||||
};//end class annex_button
|
||||
|
||||
class x_icon
|
||||
: public element_interface
|
||||
{
|
||||
bool draw(graph_reference graph, const ::nana::color&, const ::nana::color& fgcolor, const rectangle& r, element_state estate) override
|
||||
{
|
||||
auto clr = fgcolor;
|
||||
|
||||
switch (estate)
|
||||
{
|
||||
case element_state::hovered:
|
||||
case element_state::pressed:
|
||||
clr = clr.blend(colors::black, 0.8);
|
||||
break;
|
||||
case element_state::disabled:
|
||||
clr = colors::dark_gray;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
graph.set_color(clr);
|
||||
|
||||
const int x = r.x + 4;
|
||||
const int y = r.y + 4;
|
||||
|
||||
point p1{ x, y }, p2{ x + 7, y + 7 };
|
||||
|
||||
graph.line(p1, p2);
|
||||
|
||||
++p1.x;
|
||||
--p2.y;
|
||||
graph.line(p1, p2);
|
||||
|
||||
p1.x = x;
|
||||
++p1.y;
|
||||
p2.x = x + 6;
|
||||
p2.y = y + 7;
|
||||
graph.line(p1, p2);
|
||||
|
||||
p1.x += 7;
|
||||
p1.y = y;
|
||||
p2.x = x;
|
||||
graph.line(p1, p2);
|
||||
|
||||
p1.x = x + 6;
|
||||
p2.y = y + 6;
|
||||
graph.line(p1, p2);
|
||||
|
||||
++p1.x;
|
||||
++p1.y;
|
||||
++p2.x;
|
||||
++p2.y;
|
||||
graph.line(p1, p2);
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}//end namespace element
|
||||
|
||||
template<typename ElementInterface>
|
||||
class element_object
|
||||
: nana::noncopyable, nana::nonmovable
|
||||
{
|
||||
typedef ElementInterface element_t;
|
||||
typedef pat::cloneable<element::provider::factory_interface<element_t>> factory_interface;
|
||||
using element_type = ElementInterface;
|
||||
using factory_interface = pat::cloneable<element::detail::factory_abstract>;
|
||||
|
||||
public:
|
||||
~element_object()
|
||||
@ -551,7 +616,7 @@ namespace nana
|
||||
auto keep_e = element_ptr_;
|
||||
|
||||
factory_ = rhs;
|
||||
element_ptr_ = factory_->create();
|
||||
element_ptr_ = static_cast<element_type*>(static_cast<element::provider::factory_interface<element_type>&>(*factory_).create());
|
||||
|
||||
if(nullptr == factory_ || nullptr == element_ptr_)
|
||||
{
|
||||
@ -567,14 +632,14 @@ namespace nana
|
||||
spare_.emplace_back(keep_e, keep_f);
|
||||
}
|
||||
|
||||
element_t * const * keeper() const
|
||||
element_type * const * cite() const
|
||||
{
|
||||
return &element_ptr_;
|
||||
}
|
||||
private:
|
||||
factory_interface factory_; //Keep the factory for destroying the element
|
||||
element_t * element_ptr_{nullptr};
|
||||
std::vector<std::pair<element_t*, factory_interface>> spare_;
|
||||
element_type * element_ptr_{nullptr};
|
||||
std::vector<std::pair<element_type*, factory_interface>> spare_;
|
||||
};
|
||||
|
||||
class element_manager
|
||||
@ -613,6 +678,8 @@ namespace nana
|
||||
element::add_arrow<element::arrow_hollow_triangle>("hollow_triangle");
|
||||
|
||||
element::add_button<element::annex_button>(""); //"annex" in default
|
||||
|
||||
element::add_x_icon<element::x_icon>("");
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
@ -624,7 +691,17 @@ namespace nana
|
||||
|
||||
element::crook_interface * const * crook(const std::string& name) const
|
||||
{
|
||||
return _m_get(name, crook_).keeper();
|
||||
return _m_get(name, crook_).cite();
|
||||
}
|
||||
|
||||
void cross(const std::string& name, const pat::cloneable<element::provider::factory_interface<element::element_interface>>& factory)
|
||||
{
|
||||
_m_add(name, cross_, factory);
|
||||
}
|
||||
|
||||
element::element_interface* const * cross(const std::string& name) const
|
||||
{
|
||||
return _m_get(name, cross_).cite();
|
||||
}
|
||||
|
||||
void border(const std::string& name, const pat::cloneable<element::provider::factory_interface<element::border_interface>>& factory)
|
||||
@ -634,7 +711,7 @@ namespace nana
|
||||
|
||||
element::border_interface * const * border(const std::string& name) const
|
||||
{
|
||||
return _m_get(name, border_).keeper();
|
||||
return _m_get(name, border_).cite();
|
||||
}
|
||||
|
||||
void arrow(const std::string& name, const pat::cloneable<element::provider::factory_interface<element::arrow_interface>>& factory)
|
||||
@ -644,7 +721,7 @@ namespace nana
|
||||
|
||||
element::arrow_interface * const * arrow(const std::string& name) const
|
||||
{
|
||||
return _m_get((name.empty() ? "arrowhead" : name), arrow_).keeper();
|
||||
return _m_get((name.empty() ? "arrowhead" : name), arrow_).cite();
|
||||
}
|
||||
|
||||
void button(const std::string& name, const pat::cloneable<element::provider::factory_interface<element::element_interface>>& factory)
|
||||
@ -654,7 +731,17 @@ namespace nana
|
||||
|
||||
element::element_interface * const * button(const std::string& name) const
|
||||
{
|
||||
return _m_get((name.empty() ? "annex" : name), button_).keeper();
|
||||
return _m_get((name.empty() ? "annex" : name), button_).cite();
|
||||
}
|
||||
|
||||
void x_icon(const std::string& name, const pat::cloneable<element::provider::factory_interface<element::element_interface>>& factory)
|
||||
{
|
||||
_m_add(name, x_icon_, factory);
|
||||
}
|
||||
|
||||
element::element_interface * const * x_icon(const std::string& name) const
|
||||
{
|
||||
return _m_get(name, x_icon_).cite();
|
||||
}
|
||||
private:
|
||||
using lock_guard = std::lock_guard<std::recursive_mutex>;
|
||||
@ -689,9 +776,11 @@ namespace nana
|
||||
private:
|
||||
mutable std::recursive_mutex mutex_;
|
||||
item<element::crook_interface> crook_;
|
||||
item<element::element_interface> cross_;
|
||||
item<element::border_interface> border_;
|
||||
item<element::arrow_interface> arrow_;
|
||||
item<element::element_interface> button_;
|
||||
item<element::element_interface> x_icon_;
|
||||
};
|
||||
|
||||
namespace element
|
||||
@ -702,17 +791,27 @@ namespace nana
|
||||
element_manager::instance().crook(name, factory);
|
||||
}
|
||||
|
||||
crook_interface* const * provider::keeper_crook(const std::string& name)
|
||||
crook_interface* const * provider::cite_crook(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().crook(name);
|
||||
}
|
||||
|
||||
void provider::add_cross(const std::string& name, const pat::cloneable<factory_interface<element_interface>>& factory)
|
||||
{
|
||||
element_manager::instance().cross(name, factory);
|
||||
}
|
||||
|
||||
element_interface* const* provider::cite_cross(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().cross(name);
|
||||
}
|
||||
|
||||
void provider::add_border(const std::string& name, const pat::cloneable<factory_interface<border_interface>>& factory)
|
||||
{
|
||||
element_manager::instance().border(name, factory);
|
||||
}
|
||||
|
||||
border_interface* const * provider::keeper_border(const std::string& name)
|
||||
border_interface* const * provider::cite_border(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().border(name);
|
||||
}
|
||||
@ -722,7 +821,7 @@ namespace nana
|
||||
element_manager::instance().arrow(name, factory);
|
||||
}
|
||||
|
||||
arrow_interface* const * provider::keeper_arrow(const std::string& name)
|
||||
arrow_interface* const * provider::cite_arrow(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().arrow(name);
|
||||
}
|
||||
@ -732,16 +831,26 @@ namespace nana
|
||||
element_manager::instance().button(name, factory);
|
||||
}
|
||||
|
||||
element_interface* const* provider::keeper_button(const std::string& name)
|
||||
element_interface* const* provider::cite_button(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().button(name);
|
||||
}
|
||||
|
||||
void provider::add_x_icon(const std::string& name, const pat::cloneable<factory_interface<element_interface>>& factory)
|
||||
{
|
||||
element_manager::instance().x_icon(name, factory);
|
||||
}
|
||||
|
||||
element_interface* const* provider::cite_x_icon(const std::string& name)
|
||||
{
|
||||
return element_manager::instance().x_icon(name);
|
||||
}
|
||||
}//end namespace element
|
||||
|
||||
//facades
|
||||
//template<> class facade<element::crook>
|
||||
facade<element::crook>::facade(const char* name)
|
||||
: keeper_(element::provider().keeper_crook(name ? name : ""))
|
||||
: cite_(element::provider().cite_crook(name ? name : ""))
|
||||
{
|
||||
data_.check_state = state::unchecked;
|
||||
data_.radio = false;
|
||||
@ -777,40 +886,120 @@ namespace nana
|
||||
|
||||
void facade<element::crook>::switch_to(const char* name)
|
||||
{
|
||||
keeper_ = element::provider().keeper_crook(name ? name : "");
|
||||
cite_ = element::provider().cite_crook(name ? name : "");
|
||||
}
|
||||
|
||||
bool facade<element::crook>::draw(graph_reference graph, const ::nana::color& bgcol, const ::nana::color& fgcol, const nana::rectangle& r, element_state es)
|
||||
{
|
||||
return (*keeper_)->draw(graph, bgcol, fgcol, r, es, data_);
|
||||
return (*cite_)->draw(graph, bgcol, fgcol, r, es, data_);
|
||||
}
|
||||
//end class facade<element::crook>
|
||||
|
||||
//class facade<element::cross>
|
||||
facade<element::cross>::facade(const char* name)
|
||||
: cite_(element::provider().cite_cross(name ? name : ""))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void facade<element::cross>::switch_to(const char* name)
|
||||
{
|
||||
cite_ = element::provider().cite_cross(name ? name : "");
|
||||
}
|
||||
|
||||
void facade<element::cross>::thickness(unsigned thk)
|
||||
{
|
||||
thickness_ = thk;
|
||||
}
|
||||
|
||||
void facade<element::cross>::size(unsigned size_px)
|
||||
{
|
||||
size_ = size_px;
|
||||
}
|
||||
|
||||
//Implement element_interface
|
||||
bool facade<element::cross>::draw(graph_reference graph, const ::nana::color&, const ::nana::color& fgcolor, const ::nana::rectangle& r, element_state)
|
||||
{
|
||||
if (thickness_ + 2 <= size_)
|
||||
{
|
||||
int gap = (static_cast<int>(size_) - static_cast<int>(thickness_)) / 2;
|
||||
|
||||
nana::point ps[12];
|
||||
ps[0].x = r.x + gap;
|
||||
ps[1].x = ps[0].x + static_cast<int>(thickness_) - 1;
|
||||
ps[1].y = ps[0].y = r.y;
|
||||
|
||||
ps[2].x = ps[1].x;
|
||||
ps[2].y = r.y + gap;
|
||||
|
||||
ps[3].x = ps[2].x + gap;
|
||||
ps[3].y = ps[2].y;
|
||||
|
||||
ps[4].x = ps[3].x;
|
||||
ps[4].y = ps[3].y + static_cast<int>(thickness_)-1;
|
||||
|
||||
ps[5].x = ps[1].x;
|
||||
ps[5].y = ps[4].y;
|
||||
|
||||
ps[6].x = ps[5].x;
|
||||
ps[6].y = ps[5].y + gap;
|
||||
|
||||
ps[7].x = r.x + gap;
|
||||
ps[7].y = ps[6].y;
|
||||
|
||||
ps[8].x = ps[7].x;
|
||||
ps[8].y = ps[4].y;
|
||||
|
||||
ps[9].x = r.x;
|
||||
ps[9].y = ps[4].y;
|
||||
|
||||
ps[10].x = r.x;
|
||||
ps[10].y = r.y + gap;
|
||||
|
||||
ps[11].x = r.x + gap;
|
||||
ps[11].y = r.y + gap;
|
||||
|
||||
graph.set_color(fgcolor.blend(colors::black, true));
|
||||
|
||||
for (int i = 0; i < 11; ++i)
|
||||
graph.line(ps[i], ps[i + 1]);
|
||||
graph.line(ps[11], ps[0]);
|
||||
|
||||
graph.set_color(fgcolor);
|
||||
|
||||
unsigned thk_minus_2 = thickness_ - 2;
|
||||
graph.rectangle(rectangle{ ps[10].x + 1, ps[10].y + 1, (gap << 1) + thk_minus_2, thk_minus_2 }, true);
|
||||
graph.rectangle(rectangle{ ps[0].x + 1, ps[0].y + 1, thk_minus_2, (gap << 1) + thk_minus_2 }, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//end class facade<element::cross>
|
||||
|
||||
//class facade<element::border>
|
||||
facade<element::border>::facade(const char* name)
|
||||
: keeper_(element::provider().keeper_border(name ? name : ""))
|
||||
: cite_(element::provider().cite_border(name ? name : ""))
|
||||
{}
|
||||
|
||||
void facade<element::border>::switch_to(const char* name)
|
||||
{
|
||||
keeper_ = element::provider().keeper_border(name ? name : "");
|
||||
cite_ = element::provider().cite_border(name ? name : "");
|
||||
}
|
||||
|
||||
bool facade<element::border>::draw(graph_reference graph, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle& r, element_state es)
|
||||
{
|
||||
return (*keeper_)->draw(graph, bgcolor, fgcolor, r, es, 2);
|
||||
return (*cite_)->draw(graph, bgcolor, fgcolor, r, es, 2);
|
||||
}
|
||||
//end class facade<element::border>
|
||||
|
||||
//class facade<element::arrow>
|
||||
facade<element::arrow>::facade(const char* name)
|
||||
: keeper_(element::provider().keeper_arrow(name ? name : ""))
|
||||
: cite_(element::provider().cite_arrow(name ? name : ""))
|
||||
{
|
||||
}
|
||||
|
||||
void facade<element::arrow>::switch_to(const char* name)
|
||||
{
|
||||
keeper_ = element::provider().keeper_arrow(name ? name : "");
|
||||
cite_ = element::provider().cite_arrow(name ? name : "");
|
||||
}
|
||||
|
||||
void facade<element::arrow>::direction(::nana::direction dir)
|
||||
@ -822,42 +1011,62 @@ namespace nana
|
||||
bool facade<element::arrow>::draw(graph_reference graph, const nana::color& bgcolor, const nana::color& fgcolor, const nana::rectangle& r, element_state estate)
|
||||
{
|
||||
graph.set_color(fgcolor);
|
||||
return (*keeper_)->draw(graph, bgcolor, fgcolor, r, estate, dir_);
|
||||
return (*cite_)->draw(graph, bgcolor, fgcolor, r, estate, dir_);
|
||||
}
|
||||
//end class facade<element::arrow>
|
||||
|
||||
//class facade<element::button>::
|
||||
facade<element::button>::facade(const char* name)
|
||||
: keeper_(element::provider().keeper_button(name ? name : ""))
|
||||
: cite_(element::provider().cite_button(name ? name : ""))
|
||||
{}
|
||||
|
||||
void facade<element::button>::switch_to(const char* name)
|
||||
{
|
||||
keeper_ = element::provider().keeper_button(name ? name : "");
|
||||
cite_ = element::provider().cite_button(name ? name : "");
|
||||
}
|
||||
|
||||
//Implement element_interface
|
||||
bool facade<element::button>::draw(graph_reference graph, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle& r, element_state estate)
|
||||
{
|
||||
return (*keeper_)->draw(graph, bgcolor, fgcolor, r, estate);
|
||||
return (*cite_)->draw(graph, bgcolor, fgcolor, r, estate);
|
||||
}
|
||||
//end class facade<element::button>
|
||||
|
||||
|
||||
//class facade<element::x_icon>
|
||||
facade<element::x_icon>::facade(const char* name)
|
||||
: cite_(element::provider().cite_x_icon(name ? name : ""))
|
||||
{}
|
||||
|
||||
void facade<element::x_icon>::switch_to(const char* name)
|
||||
{
|
||||
cite_ = element::provider().cite_x_icon(name ? name : "");
|
||||
}
|
||||
|
||||
//Implement element_interface
|
||||
bool facade<element::x_icon>::draw(graph_reference graph, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const ::nana::rectangle& r, element_state estate)
|
||||
{
|
||||
return (*cite_)->draw(graph, bgcolor, fgcolor, r, estate);
|
||||
}
|
||||
//end class facade<element::x_icon>
|
||||
|
||||
namespace element
|
||||
{
|
||||
using brock = ::nana::detail::bedrock;
|
||||
|
||||
void set_bground(const char* name, const pat::cloneable<element_interface>& obj)
|
||||
{
|
||||
detail::bedrock::instance().get_element_store().bground(name, obj);
|
||||
brock::instance().get_element_store().bground(name, obj);
|
||||
}
|
||||
|
||||
void set_bground(const char* name, pat::cloneable<element_interface> && obj)
|
||||
{
|
||||
detail::bedrock::instance().get_element_store().bground(name, std::move(obj));
|
||||
brock::instance().get_element_store().bground(name, std::move(obj));
|
||||
}
|
||||
|
||||
//class cite
|
||||
cite_bground::cite_bground(const char* name)
|
||||
: ref_ptr_(detail::bedrock::instance().get_element_store().bground(name))
|
||||
: ref_ptr_(brock::instance().get_element_store().bground(name))
|
||||
{
|
||||
}
|
||||
|
||||
@ -871,7 +1080,7 @@ namespace nana
|
||||
void cite_bground::set(const char* name)
|
||||
{
|
||||
holder_.reset();
|
||||
ref_ptr_ = detail::bedrock::instance().get_element_store().bground(name);
|
||||
ref_ptr_ = brock::instance().get_element_store().bground(name);
|
||||
}
|
||||
|
||||
bool cite_bground::draw(graph_reference dst, const ::nana::color& bgcolor, const ::nana::color& fgcolor, const nana::rectangle& r, element_state state)
|
||||
|
@ -959,7 +959,7 @@ namespace nana
|
||||
int inputbox::date::month() const
|
||||
{
|
||||
if (!impl_->wdg_month.empty())
|
||||
return impl_->wdg_month.option() + 1;
|
||||
return static_cast<int>(impl_->wdg_month.option()) + 1;
|
||||
return impl_->month;
|
||||
}
|
||||
|
||||
@ -1028,7 +1028,7 @@ namespace nana
|
||||
impl->wdg_day.events().destroy.connect_unignorable([impl]
|
||||
{
|
||||
impl->day = impl->wdg_day.to_int();
|
||||
impl->month = impl->wdg_month.option() + 1;
|
||||
impl->month = static_cast<int>(impl->wdg_month.option()) + 1;
|
||||
});
|
||||
|
||||
impl->wdg_year.events().destroy.connect_unignorable([impl]
|
||||
@ -1040,7 +1040,7 @@ namespace nana
|
||||
{
|
||||
auto month = impl->wdg_month.option() + 1;
|
||||
auto year = impl->wdg_year.to_int();
|
||||
int days = ::nana::date::month_days(year, month);
|
||||
int days = ::nana::date::month_days(year, static_cast<unsigned>(month));
|
||||
|
||||
auto day = impl->wdg_day.to_int();
|
||||
impl->wdg_day.range(1, days, 1); //It resets the current value of wdg_day
|
||||
|
1567
source/gui/place.cpp
1567
source/gui/place.cpp
File diff suppressed because it is too large
Load Diff
697
source/gui/place_parts.hpp
Normal file
697
source/gui/place_parts.hpp
Normal file
@ -0,0 +1,697 @@
|
||||
/*
|
||||
* Parts of Class Place
|
||||
* Nana C++ Library(http://www.nanapro.org)
|
||||
* Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
|
||||
*
|
||||
* Distributed under the Boost Software License, Version 1.0.
|
||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||
* http://www.boost.org/LICENSE_1_0.txt)
|
||||
*
|
||||
* @file: nana/gui/place_parts.hpp
|
||||
*/
|
||||
#ifndef NANA_GUI_PLACE_PARTS_HPP
|
||||
#define NANA_GUI_PLACE_PARTS_HPP
|
||||
|
||||
#include <nana/gui/widgets/form.hpp>
|
||||
#include <nana/gui/widgets/tabbar.hpp>
|
||||
#include <nana/gui/element.hpp>
|
||||
#include <nana/paint/text_renderer.hpp>
|
||||
#include <stdexcept>
|
||||
#include <deque>
|
||||
|
||||
namespace nana
|
||||
{
|
||||
namespace place_parts
|
||||
{
|
||||
class splitter_interface
|
||||
{
|
||||
public:
|
||||
virtual ~splitter_interface(){}
|
||||
};
|
||||
|
||||
class splitter_dtrigger
|
||||
: public drawer_trigger
|
||||
{
|
||||
};
|
||||
|
||||
template<bool IsLite>
|
||||
class splitter
|
||||
: public widget_object <typename std::conditional<IsLite, category::lite_widget_tag, category::widget_tag>::type, splitter_dtrigger>,
|
||||
public splitter_interface
|
||||
{
|
||||
private:
|
||||
void _m_complete_creation() override
|
||||
{
|
||||
this->caption("place-splitter");
|
||||
widget_object <typename std::conditional<IsLite, category::lite_widget_tag, category::widget_tag>::type, splitter_dtrigger>::_m_complete_creation();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class dock_notifier_interface
|
||||
{
|
||||
public:
|
||||
virtual ~dock_notifier_interface() = default;
|
||||
|
||||
virtual void notify_float() = 0;
|
||||
virtual void notify_dock() = 0;
|
||||
virtual void notify_move() = 0;
|
||||
virtual void notify_move_stopped() = 0;
|
||||
|
||||
//a dockarea requests to close the dockpane
|
||||
virtual void request_close() = 0;
|
||||
};
|
||||
|
||||
class dockcaption_dtrigger
|
||||
: public drawer_trigger
|
||||
{
|
||||
public:
|
||||
void on_close(std::function<void()>&& fn)
|
||||
{
|
||||
close_fn_ = std::move(fn);
|
||||
}
|
||||
private:
|
||||
virtual void attached(widget_reference wdg, graph_reference graph) override
|
||||
{
|
||||
window_handle_ = wdg;
|
||||
text_rd_.reset(new paint::text_renderer(graph));
|
||||
}
|
||||
|
||||
void refresh(graph_reference& graph) override
|
||||
{
|
||||
graph.set_color(static_cast<color_rgb>(0x83EB));
|
||||
graph.set_text_color(colors::white);
|
||||
graph.rectangle(true);
|
||||
|
||||
//draw caption
|
||||
auto text = API::window_caption(window_handle_);
|
||||
text_rd_->render({ 3, 1 }, text.data(), text.size(), graph.size().width - 20, true);
|
||||
|
||||
//draw x button
|
||||
auto r = _m_button_area();
|
||||
if (x_pointed_)
|
||||
{
|
||||
color xclr = colors::red;
|
||||
|
||||
if(x_state_ == ::nana::mouse_action::pressed)
|
||||
xclr = xclr.blend(colors::white, 0.8);
|
||||
|
||||
graph.rectangle(r, true, xclr);
|
||||
}
|
||||
|
||||
r.x += (r.width - 16) / 2;
|
||||
r.y = (r.height - 16) / 2;
|
||||
|
||||
x_icon_.draw(graph, colors::red, colors::white, r, element_state::normal);
|
||||
}
|
||||
|
||||
void mouse_move(graph_reference graph, const arg_mouse& arg) override
|
||||
{
|
||||
x_pointed_ = _m_button_area().is_hit(arg.pos);
|
||||
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
}
|
||||
|
||||
void mouse_leave(graph_reference graph, const arg_mouse&) override
|
||||
{
|
||||
x_pointed_ = false;
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
}
|
||||
|
||||
void mouse_down(graph_reference graph, const arg_mouse&) override
|
||||
{
|
||||
if (!x_pointed_)
|
||||
return;
|
||||
|
||||
x_state_ = ::nana::mouse_action::pressed;
|
||||
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
}
|
||||
|
||||
void mouse_up(graph_reference graph, const arg_mouse&) override
|
||||
{
|
||||
if (!x_pointed_)
|
||||
return;
|
||||
|
||||
x_state_ = ::nana::mouse_action::over;
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
|
||||
close_fn_();
|
||||
}
|
||||
private:
|
||||
::nana::rectangle _m_button_area() const
|
||||
{
|
||||
::nana::rectangle r{API::window_size(window_handle_)};
|
||||
|
||||
r.x = r.right() - 20;
|
||||
r.width = 20;
|
||||
return r;
|
||||
}
|
||||
public:
|
||||
window window_handle_;
|
||||
std::unique_ptr<paint::text_renderer> text_rd_;
|
||||
bool x_pointed_{ false };
|
||||
::nana::mouse_action x_state_{ ::nana::mouse_action::normal };
|
||||
facade<element::x_icon> x_icon_;
|
||||
|
||||
std::function<void()> close_fn_;
|
||||
};
|
||||
|
||||
class dockarea_caption
|
||||
: public widget_object < category::widget_tag, dockcaption_dtrigger >
|
||||
{
|
||||
public:
|
||||
void on_close(std::function<void()> fn)
|
||||
{
|
||||
get_drawer_trigger().on_close(std::move(fn));
|
||||
}
|
||||
};
|
||||
|
||||
class dock_page
|
||||
: public form
|
||||
{
|
||||
public:
|
||||
dock_page(window host, const rectangle& r, const rectangle & tab_r)
|
||||
: form(host, r, form::appear::bald<>())
|
||||
{
|
||||
tab_form_.reset(new form(handle(), tab_r, form::appear::bald<>()));
|
||||
|
||||
}
|
||||
private:
|
||||
std::unique_ptr<form> tab_form_;
|
||||
};
|
||||
|
||||
class dockarea
|
||||
: public widget_object <category::lite_widget_tag, drawer_trigger>
|
||||
{
|
||||
using base_type = widget_object<category::lite_widget_tag, drawer_trigger>;
|
||||
|
||||
using factory = std::function<std::unique_ptr<widget>(window)>;
|
||||
|
||||
struct panel
|
||||
{
|
||||
std::unique_ptr<widget> widget_ptr;
|
||||
};
|
||||
public:
|
||||
void set_notifier(place_parts::dock_notifier_interface* notifier)
|
||||
{
|
||||
notifier_ = notifier;
|
||||
}
|
||||
void create(window parent)
|
||||
{
|
||||
host_window_ = parent;
|
||||
base_type::create(parent, true);
|
||||
this->caption("dockarea");
|
||||
caption_.create(*this, true);
|
||||
caption_.on_close([this]
|
||||
{
|
||||
bool destroy_dockarea = true;
|
||||
|
||||
if (tabbar_)
|
||||
{
|
||||
tabbar_->erase(tabbar_->selected());
|
||||
|
||||
destroy_dockarea = (0 == tabbar_->length());
|
||||
}
|
||||
|
||||
|
||||
if (destroy_dockarea)
|
||||
notifier_->request_close();
|
||||
});
|
||||
|
||||
this->events().resized([this](const arg_resized& arg)
|
||||
{
|
||||
rectangle r{ 0, 0, arg.width, 20 };
|
||||
caption_.move(r);
|
||||
|
||||
if (arg.height > 20)
|
||||
{
|
||||
r.y = 20;
|
||||
if (tabbar_)
|
||||
{
|
||||
tabbar_->move({ 0, int(arg.height) - 20, arg.width, 20 });
|
||||
r.height = arg.height - 40;
|
||||
}
|
||||
else
|
||||
r.height = arg.height - 20;
|
||||
}
|
||||
|
||||
|
||||
for (auto & pn : panels_)
|
||||
{
|
||||
if (pn.widget_ptr)
|
||||
pn.widget_ptr->move(r);
|
||||
}
|
||||
});
|
||||
|
||||
caption_.events().mouse_down([this](const arg_mouse& arg)
|
||||
{
|
||||
if (::nana::mouse::left_button == arg.button)
|
||||
{
|
||||
moves_.started = true;
|
||||
moves_.start_pos = API::cursor_position();
|
||||
moves_.start_container_pos = (floating() ? container_->pos() : this->pos());
|
||||
API::capture_window(caption_, true);
|
||||
}
|
||||
});
|
||||
|
||||
caption_.events().mouse_move([this](const arg_mouse& arg)
|
||||
{
|
||||
if (arg.left_button && moves_.started)
|
||||
{
|
||||
auto move_pos = API::cursor_position() - moves_.start_pos;
|
||||
if (!floating())
|
||||
{
|
||||
if (std::abs(move_pos.x) > 4 || std::abs(move_pos.y) > 4)
|
||||
float_away(move_pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
move_pos += moves_.start_container_pos;
|
||||
API::move_window(container_->handle(), move_pos);
|
||||
notifier_->notify_move();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
caption_.events().mouse_up([this](const arg_mouse& arg)
|
||||
{
|
||||
if ((::nana::mouse::left_button == arg.button) && moves_.started)
|
||||
{
|
||||
moves_.started = false;
|
||||
API::capture_window(caption_, false);
|
||||
notifier_->notify_move_stopped();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
void add_pane(factory & fn)
|
||||
{
|
||||
rectangle r{ point(), this->size()};
|
||||
|
||||
//get a rectangle excluding caption
|
||||
r.y = 20;
|
||||
if (r.height > 20)
|
||||
r.height -= 20;
|
||||
else
|
||||
r.height = 0;
|
||||
|
||||
if (!tabbar_)
|
||||
{
|
||||
if (panels_.size() > 0)
|
||||
{
|
||||
tabbar_.reset(new tabbar_lite(*this));
|
||||
|
||||
tabbar_->events().selected.clear();
|
||||
tabbar_->events().selected([this]
|
||||
{
|
||||
auto handle = tabbar_->attach(tabbar_->selected());
|
||||
if (handle)
|
||||
caption_.caption(API::window_caption(handle));
|
||||
else
|
||||
caption_.caption(::nana::string());
|
||||
});
|
||||
|
||||
tabbar_->move({ 0, r.bottom() - 20, r.width, 20 });
|
||||
r.height -= 20;
|
||||
|
||||
std::size_t pos = 0;
|
||||
for (auto & pn : panels_)
|
||||
{
|
||||
tabbar_->push_back(::nana::charset(pn.widget_ptr->caption()));
|
||||
tabbar_->attach(pos++, *pn.widget_ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
r.height -= 20;
|
||||
|
||||
auto wdg = fn(*this);
|
||||
|
||||
if (tabbar_)
|
||||
{
|
||||
tabbar_->push_back(::nana::charset(wdg->caption()));
|
||||
tabbar_->attach(panels_.size(), wdg->handle());
|
||||
}
|
||||
|
||||
if (panels_.empty())
|
||||
{
|
||||
caption_.caption(wdg->caption());
|
||||
}
|
||||
|
||||
panels_.emplace_back();
|
||||
panels_.back().widget_ptr.swap(wdg);
|
||||
|
||||
for (auto & pn : panels_)
|
||||
{
|
||||
if (pn.widget_ptr)
|
||||
pn.widget_ptr->move(r);
|
||||
}
|
||||
}
|
||||
|
||||
void float_away(const ::nana::point& move_pos)
|
||||
{
|
||||
if (container_)
|
||||
return;
|
||||
|
||||
API::capture_window(caption_, false);
|
||||
|
||||
rectangle r{ pos() + move_pos, size() };
|
||||
container_.reset(new form(host_window_, r.pare_off(-1), form::appear::bald<>()));
|
||||
drawing dw(container_->handle());
|
||||
dw.draw([](paint::graphics& graph)
|
||||
{
|
||||
graph.rectangle(false, colors::coral);
|
||||
});
|
||||
|
||||
API::set_parent_window(handle(), container_->handle());
|
||||
this->move({ 1, 1 });
|
||||
|
||||
container_->show();
|
||||
API::capture_window(caption_, true);
|
||||
|
||||
notifier_->notify_float();
|
||||
}
|
||||
|
||||
void dock()
|
||||
{
|
||||
API::capture_window(caption_, false);
|
||||
API::set_parent_window(handle(), host_window_);
|
||||
container_.reset();
|
||||
notifier_->notify_dock();
|
||||
}
|
||||
|
||||
bool floating() const
|
||||
{
|
||||
return (nullptr != container_);
|
||||
}
|
||||
private:
|
||||
window host_window_{nullptr};
|
||||
place_parts::dock_notifier_interface* notifier_{ nullptr };
|
||||
std::unique_ptr<form> container_;
|
||||
dockarea_caption caption_;
|
||||
std::deque<panel> panels_;
|
||||
std::unique_ptr<tabbar_lite> tabbar_;
|
||||
|
||||
struct moves
|
||||
{
|
||||
bool started{ false };
|
||||
::nana::point start_pos;
|
||||
::nana::point start_container_pos;
|
||||
}moves_;
|
||||
};//class dockarea
|
||||
|
||||
|
||||
//number_t is used for storing a number type variable
|
||||
//such as integer, real and percent. Essentially, percent is a typo of real.
|
||||
class number_t
|
||||
{
|
||||
public:
|
||||
enum class kind{ none, integer, real, percent };
|
||||
|
||||
number_t()
|
||||
: kind_(kind::none)
|
||||
{
|
||||
value_.integer = 0;
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
kind_ = kind::none;
|
||||
value_.integer = 0;
|
||||
}
|
||||
|
||||
bool is_negative() const
|
||||
{
|
||||
switch (kind_)
|
||||
{
|
||||
case kind::integer:
|
||||
return (value_.integer < 0);
|
||||
case kind::real:
|
||||
case kind::percent:
|
||||
return (value_.real < 0);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_none() const
|
||||
{
|
||||
return (kind::none == kind_);
|
||||
}
|
||||
|
||||
bool is_not_none() const
|
||||
{
|
||||
return (kind::none != kind_);
|
||||
}
|
||||
|
||||
kind kind_of() const
|
||||
{
|
||||
return kind_;
|
||||
}
|
||||
|
||||
double get_value(int ref_percent) const
|
||||
{
|
||||
switch (kind_)
|
||||
{
|
||||
case kind::integer:
|
||||
return value_.integer;
|
||||
case kind::real:
|
||||
return value_.real;
|
||||
case kind::percent:
|
||||
return value_.real * ref_percent;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int integer() const
|
||||
{
|
||||
if (kind::integer == kind_)
|
||||
return value_.integer;
|
||||
return static_cast<int>(value_.real);
|
||||
}
|
||||
|
||||
double real() const
|
||||
{
|
||||
if (kind::integer == kind_)
|
||||
return value_.integer;
|
||||
return value_.real;
|
||||
}
|
||||
|
||||
void assign(int i)
|
||||
{
|
||||
kind_ = kind::integer;
|
||||
value_.integer = i;
|
||||
}
|
||||
|
||||
void assign(double d)
|
||||
{
|
||||
kind_ = kind::real;
|
||||
value_.real = d;
|
||||
}
|
||||
|
||||
void assign_percent(double d)
|
||||
{
|
||||
kind_ = kind::percent;
|
||||
value_.real = d / 100;
|
||||
}
|
||||
private:
|
||||
kind kind_;
|
||||
union valueset
|
||||
{
|
||||
int integer;
|
||||
double real;
|
||||
}value_;
|
||||
};//end class number_t
|
||||
|
||||
|
||||
class margin
|
||||
{
|
||||
public:
|
||||
margin& operator=(margin&& rhs)
|
||||
{
|
||||
if (this != &rhs)
|
||||
{
|
||||
all_edges_ = rhs.all_edges_;
|
||||
margins_ = std::move(rhs.margins_);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
all_edges_ = true;
|
||||
margins_.clear();
|
||||
}
|
||||
|
||||
void push(const number_t& v)
|
||||
{
|
||||
margins_.emplace_back(v);
|
||||
}
|
||||
|
||||
void set_value(const number_t& v)
|
||||
{
|
||||
clear();
|
||||
margins_.emplace_back(v);
|
||||
}
|
||||
|
||||
void set_array(const std::vector<number_t>& v)
|
||||
{
|
||||
all_edges_ = false;
|
||||
margins_ = v;
|
||||
}
|
||||
|
||||
nana::rectangle area(const ::nana::rectangle& field_area) const
|
||||
{
|
||||
if (margins_.empty())
|
||||
return field_area;
|
||||
|
||||
auto r = field_area;
|
||||
if (all_edges_)
|
||||
{
|
||||
auto px = static_cast<int>(margins_.back().get_value(static_cast<int>(r.width)));
|
||||
const auto dbl_px = static_cast<unsigned>(px << 1);
|
||||
r.x += px;
|
||||
r.width = (r.width < dbl_px ? 0 : r.width - dbl_px);
|
||||
|
||||
r.y += px;
|
||||
r.height = (r.height < dbl_px ? 0 : r.height - dbl_px);
|
||||
}
|
||||
else
|
||||
{
|
||||
int il{ -1 }, ir{ -1 }, it{ -1 }, ib{ -1 }; //index of four corners in margin
|
||||
switch (margins_.size())
|
||||
{
|
||||
case 0: break;
|
||||
case 1: //top
|
||||
it = 0;
|
||||
break;
|
||||
case 2://top,bottom and left,right
|
||||
it = ib = 0;
|
||||
il = ir = 1;
|
||||
break;
|
||||
default:
|
||||
il = 3; //left
|
||||
case 3: //top, right, bottom
|
||||
it = 0;
|
||||
ir = 1;
|
||||
ib = 2;
|
||||
}
|
||||
|
||||
typedef decltype(r.height) px_type;
|
||||
auto calc = [](px_type a, px_type b)
|
||||
{
|
||||
return (a > b ? a - b : 0);
|
||||
};
|
||||
|
||||
if (0 == it) //top
|
||||
{
|
||||
auto px = static_cast<int>(margins_[it].get_value(static_cast<int>(field_area.height)));
|
||||
r.y += px;
|
||||
r.height = calc(r.height, static_cast<px_type>(px));
|
||||
}
|
||||
|
||||
if (-1 != ib) //bottom
|
||||
{
|
||||
auto px = static_cast<int>(margins_[ib].get_value(static_cast<int>(field_area.height)));
|
||||
r.height = calc(r.height, static_cast<px_type>(px));
|
||||
}
|
||||
|
||||
if (-1 != il) //left
|
||||
{
|
||||
auto px = static_cast<px_type>(margins_[il].get_value(static_cast<int>(field_area.width)));
|
||||
r.x += px;
|
||||
r.width = calc(r.width, static_cast<px_type>(px));
|
||||
}
|
||||
|
||||
if (-1 != ir) //right
|
||||
{
|
||||
auto px = static_cast<int>(margins_[ir].get_value(static_cast<int>(field_area.width)));
|
||||
r.width = calc(r.width, static_cast<px_type>(px));
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
private:
|
||||
bool all_edges_ = true;
|
||||
std::vector<number_t> margins_;
|
||||
};//end class margin
|
||||
|
||||
class repeated_array
|
||||
{
|
||||
public:
|
||||
|
||||
//A workaround for VC2013, becuase it does not generated an implicit declared move-constructor as defaulted.
|
||||
repeated_array() = default;
|
||||
|
||||
repeated_array(repeated_array && other)
|
||||
: repeated_{ other.repeated_ },
|
||||
values_(std::move(other.values_))
|
||||
{
|
||||
}
|
||||
|
||||
repeated_array& operator=(repeated_array&& other)
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
repeated_ = other.repeated_;
|
||||
other.repeated_ = false;
|
||||
values_ = std::move(other.values_);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
void assign(std::vector<number_t>&& c)
|
||||
{
|
||||
values_ = std::move(c);
|
||||
}
|
||||
|
||||
bool empty() const
|
||||
{
|
||||
return values_.empty();
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
repeated_ = false;
|
||||
values_.clear();
|
||||
}
|
||||
|
||||
void repeated()
|
||||
{
|
||||
repeated_ = true;
|
||||
}
|
||||
|
||||
void push(const number_t& n)
|
||||
{
|
||||
values_.emplace_back(n);
|
||||
}
|
||||
|
||||
number_t at(std::size_t pos) const
|
||||
{
|
||||
if (values_.empty())
|
||||
return{};
|
||||
|
||||
if (repeated_)
|
||||
pos %= values_.size();
|
||||
else if (pos >= values_.size())
|
||||
return{};
|
||||
|
||||
return values_[pos];
|
||||
}
|
||||
private:
|
||||
bool repeated_ = false;
|
||||
std::vector<number_t> values_;
|
||||
};
|
||||
}//end namespace place_parts
|
||||
}//end namespace nana
|
||||
|
||||
#endif //NANA_GUI_PLACE_PARTS_HPP
|
@ -538,11 +538,11 @@ namespace API
|
||||
return nana::point{};
|
||||
}
|
||||
|
||||
void move_window(window wd, int x, int y)
|
||||
void move_window(window wd, const point& pos)
|
||||
{
|
||||
auto iwd = reinterpret_cast<restrict::core_window_t*>(wd);
|
||||
internal_scope_guard lock;
|
||||
if(restrict::window_manager.move(iwd, x, y, false))
|
||||
if(restrict::window_manager.move(iwd, pos.x, pos.y, false))
|
||||
{
|
||||
restrict::core_window_t* update_wd = nullptr;
|
||||
if (iwd->displayed() && iwd->effect.bground)
|
||||
@ -1314,5 +1314,10 @@ namespace API
|
||||
internal_scope_guard lock;
|
||||
return (restrict::window_manager.available(iwd) ? iwd->flags.ignore_mouse_focus : false);
|
||||
}
|
||||
|
||||
void at_safe_place(window wd, std::function<void()> fn)
|
||||
{
|
||||
restrict::window_manager.set_safe_place(reinterpret_cast<restrict::core_window_t*>(wd), std::move(fn));
|
||||
}
|
||||
}//end namespace API
|
||||
}//end namespace nana
|
||||
|
@ -14,7 +14,6 @@
|
||||
#include <nana/gui/widgets/categorize.hpp>
|
||||
#include <nana/gui/widgets/float_listbox.hpp>
|
||||
#include <nana/gui/element.hpp>
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include <nana/gui/widgets/detail/tree_cont.hpp>
|
||||
#include <stdexcept>
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
*/
|
||||
|
||||
#include <nana/gui/widgets/checkbox.hpp>
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include <nana/paint/text_renderer.hpp>
|
||||
#include <nana/gui/element.hpp>
|
||||
#include <algorithm>
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
#include <nana/gui/widgets/date_chooser.hpp>
|
||||
#include <nana/gui/element.hpp>
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include <nana/system/platform.hpp>
|
||||
#include <sstream>
|
||||
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
#include <nana/gui/widgets/menu.hpp>
|
||||
#include <nana/system/platform.hpp>
|
||||
#include <nana/paint/gadget.hpp>
|
||||
#include <nana/gui/element.hpp>
|
||||
#include <nana/gui/wvl.hpp>
|
||||
#include <nana/paint/text_renderer.hpp>
|
||||
|
@ -2250,7 +2250,7 @@ namespace nana{ namespace widgets
|
||||
break;
|
||||
case keyboard::os_end:
|
||||
if (caret.y != nlines - 1) {
|
||||
caret.y = nlines - 1;
|
||||
caret.y = static_cast<decltype(caret.y)>(nlines - 1);
|
||||
changed = true;
|
||||
}
|
||||
break;
|
||||
@ -2265,7 +2265,7 @@ namespace nana{ namespace widgets
|
||||
}else {
|
||||
if (caret.y != 0) {
|
||||
--caret.y;
|
||||
caret.x = textbase_.getline(caret.y).size();
|
||||
caret.x = static_cast<decltype(caret.x)>(textbase_.getline(caret.y).size());
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
@ -2309,7 +2309,7 @@ namespace nana{ namespace widgets
|
||||
break;
|
||||
case keyboard::os_end:
|
||||
if (caret.x < lnsz) {
|
||||
caret.x = lnsz;
|
||||
caret.x = static_cast<decltype(caret.x)>(lnsz);
|
||||
changed = true;
|
||||
}
|
||||
break;
|
||||
|
@ -97,7 +97,7 @@ namespace nana
|
||||
{
|
||||
int x = r.x + (static_cast<int>(r.width) - 14) / 2;
|
||||
int y = r.y + (static_cast<int>(r.height) - 14) / 2;
|
||||
|
||||
|
||||
::nana::color clr;
|
||||
|
||||
switch(sta)
|
||||
@ -112,12 +112,14 @@ namespace nana
|
||||
clr = { 0xF0, 0xF0, 0xF0 };
|
||||
}
|
||||
graph.rectangle(r, true, bgcolor_);
|
||||
nana::paint::gadget::cross(graph, x, y, 14, 6, clr);
|
||||
facade<element::cross> cross;
|
||||
cross.draw(graph, {}, clr, { x, y, 14, 6 }, element_state::normal);
|
||||
}
|
||||
|
||||
virtual void close(graph_reference graph, const nana::rectangle& r, state_t sta)
|
||||
{
|
||||
nana::paint::gadget::close_16_pixels(graph, r.x + (r.width - 16) / 2, r.y + (r.height - 16) / 2, 1, colors::black);
|
||||
facade<element::x_icon> x_icon;
|
||||
x_icon.draw(graph, {}, colors::black, { r.x + static_cast<int>(r.width - 16) / 2, r.y + static_cast<int>(r.height - 16) / 2, 16, 16 }, element_state::normal);
|
||||
if(item_renderer::highlight == sta)
|
||||
graph.rectangle(r, false, {0xa0, 0xa0, 0xa0});
|
||||
}
|
||||
@ -140,24 +142,23 @@ namespace nana
|
||||
else if (!active)
|
||||
clr = ::nana::color{ 0x92, 0x99, 0xA4 };
|
||||
|
||||
gadget::close_16_pixels(graph, r.x - (16 - r.width) / 2, r.y - (16 - r.height) / 2, 1, clr);
|
||||
facade<element::x_icon> x_icon;
|
||||
x_icon.draw(graph, {}, colors::black, { r.x + static_cast<int>(r.width - 16) / 2, r.y + static_cast<int>(r.height - 16) / 2, 16, 16 }, element_state::normal);
|
||||
|
||||
}
|
||||
|
||||
virtual void back(graph_reference graph, const nana::rectangle& r, state_t sta)
|
||||
{
|
||||
using namespace nana::paint::gadget;
|
||||
_m_draw_arrow(graph, r, sta, direction::west);
|
||||
}
|
||||
|
||||
virtual void next(graph_reference graph, const nana::rectangle& r, state_t sta)
|
||||
{
|
||||
using namespace nana::paint::gadget;
|
||||
_m_draw_arrow(graph, r, sta, direction::east);
|
||||
}
|
||||
|
||||
virtual void list(graph_reference graph, const nana::rectangle& r, state_t sta)
|
||||
{
|
||||
using namespace nana::paint::gadget;
|
||||
_m_draw_arrow(graph, r, sta, direction::south);
|
||||
}
|
||||
private:
|
||||
@ -343,7 +344,7 @@ namespace nana
|
||||
{
|
||||
if(i < list_.size())
|
||||
return at_no_bound_check(i);
|
||||
throw std::out_of_range("Nana.GUI.tabbar::at() is out of range");
|
||||
throw std::out_of_range("invalid position of tabbar");
|
||||
}
|
||||
|
||||
iterator iterator_at(std::size_t pos)
|
||||
@ -369,7 +370,7 @@ namespace nana
|
||||
{
|
||||
if(pos < list_.size())
|
||||
return at_no_bound_check(pos);
|
||||
throw std::out_of_range("Nana.GUI.tabbar::at() const is out of range");
|
||||
throw std::out_of_range("invalid position of tabbar");
|
||||
}
|
||||
|
||||
const nana::any& at_no_bound_check(std::size_t pos) const
|
||||
@ -1274,8 +1275,6 @@ namespace nana
|
||||
#include <forward_list>
|
||||
namespace nana
|
||||
{
|
||||
namespace ng
|
||||
{
|
||||
namespace drawerbase
|
||||
{
|
||||
namespace tabbar_lite
|
||||
@ -1285,6 +1284,7 @@ namespace nana
|
||||
::std::string text;
|
||||
::nana::any value;
|
||||
::std::pair<int, int> pos_ends;
|
||||
::nana::window attached_window{ nullptr };
|
||||
|
||||
item(std::string t, ::nana::any v)
|
||||
: text(std::move(t)), value(std::move(v))
|
||||
@ -1345,21 +1345,44 @@ namespace nana
|
||||
using graph_reference = ::nana::paint::graphics&;
|
||||
static const std::size_t npos = static_cast<std::size_t>(-1);
|
||||
|
||||
void set_widget(widget& wdg)
|
||||
void set_widget(::nana::tabbar_lite& wdg)
|
||||
{
|
||||
widget_ = &wdg;
|
||||
}
|
||||
|
||||
::nana::dev::widget_traits<widget>::scheme_type & scheme()
|
||||
::nana::tabbar_lite* widget_ptr() const
|
||||
{
|
||||
return widget_;
|
||||
}
|
||||
/*
|
||||
::nana::dev::widget_traits<widget>::scheme_type & scheme() //deprecated
|
||||
{
|
||||
return API::scheme(*widget_);
|
||||
}
|
||||
*/
|
||||
|
||||
std::forward_list<item>& items()
|
||||
{
|
||||
return items_;
|
||||
}
|
||||
|
||||
void show_attached_window()
|
||||
{
|
||||
if (indexes_.active_pos != npos)
|
||||
{
|
||||
auto i = items_.cbegin();
|
||||
std::advance(i, indexes_.active_pos);
|
||||
API::show_window(i->attached_window, true);
|
||||
|
||||
std::size_t pos = 0;
|
||||
for (auto & m : items_)
|
||||
{
|
||||
if (pos++ != indexes_.active_pos)
|
||||
API::show_window(m.attached_window, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool track_pointer(const point& pos)
|
||||
{
|
||||
std::size_t item_pos = 0;
|
||||
@ -1390,7 +1413,7 @@ namespace nana
|
||||
return indexes_;
|
||||
}
|
||||
private:
|
||||
widget * widget_{ nullptr };
|
||||
::nana::tabbar_lite * widget_{ nullptr };
|
||||
std::forward_list<item> items_;
|
||||
indexes indexes_;
|
||||
};
|
||||
@ -1404,7 +1427,7 @@ namespace nana
|
||||
{
|
||||
_m_calc_metrics(graph, model.items());
|
||||
|
||||
auto & scheme = model.scheme();
|
||||
auto & scheme = model.widget_ptr()->scheme();
|
||||
|
||||
//draw background
|
||||
graph.rectangle(true, scheme.background);
|
||||
@ -1475,14 +1498,14 @@ namespace nana
|
||||
delete model_;
|
||||
}
|
||||
|
||||
model* driver::get_model()
|
||||
model* driver::get_model() const throw()
|
||||
{
|
||||
return model_;
|
||||
}
|
||||
|
||||
void driver::attached(widget_reference wdg, graph_reference)
|
||||
{
|
||||
model_->set_widget(wdg);
|
||||
model_->set_widget(dynamic_cast<nana::tabbar_lite&>(wdg));
|
||||
}
|
||||
|
||||
//Overrides drawer_trigger's method
|
||||
@ -1513,12 +1536,20 @@ namespace nana
|
||||
void driver::mouse_down(graph_reference graph, const arg_mouse&)
|
||||
{
|
||||
auto & indexes = model_->get_indexes();
|
||||
if (indexes.hovered_pos == model_->npos)
|
||||
if ((indexes.hovered_pos == model_->npos) || (indexes.active_pos == indexes.hovered_pos))
|
||||
return;
|
||||
|
||||
indexes.active_pos = indexes.hovered_pos;
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
if (indexes.active_pos != indexes.hovered_pos)
|
||||
{
|
||||
indexes.active_pos = indexes.hovered_pos;
|
||||
model_->show_attached_window();
|
||||
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
|
||||
event_arg arg;
|
||||
model_->widget_ptr()->events().selected.emit(arg);
|
||||
}
|
||||
}
|
||||
//end class driver
|
||||
}
|
||||
@ -1531,6 +1562,47 @@ namespace nana
|
||||
this->create(parent_wd, r, visible);
|
||||
}
|
||||
|
||||
//capacity
|
||||
std::size_t tabbar_lite::length() const
|
||||
{
|
||||
auto& items = get_drawer_trigger().get_model()->items();
|
||||
internal_scope_guard lock;
|
||||
return static_cast<std::size_t>(std::distance(items.cbegin(), items.cend()));
|
||||
}
|
||||
|
||||
//modifiers
|
||||
void tabbar_lite::attach(std::size_t pos_set, window wd)
|
||||
{
|
||||
auto model = get_drawer_trigger().get_model();
|
||||
internal_scope_guard lock;
|
||||
|
||||
for (auto & m : model->items())
|
||||
{
|
||||
if (0 == pos_set--)
|
||||
{
|
||||
m.attached_window = wd;
|
||||
model->show_attached_window();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
throw std::out_of_range("invalid position of tabbar_lite");
|
||||
}
|
||||
|
||||
window tabbar_lite::attach(std::size_t pos_set) const
|
||||
{
|
||||
auto model = get_drawer_trigger().get_model();
|
||||
internal_scope_guard lock;
|
||||
|
||||
for (auto & m : model->items())
|
||||
{
|
||||
if (0 == pos_set--)
|
||||
return m.attached_window;
|
||||
}
|
||||
|
||||
throw std::out_of_range("invalid position of tabbar_lite");
|
||||
}
|
||||
|
||||
void tabbar_lite::push_back(std::string text, ::nana::any any)
|
||||
{
|
||||
auto & items = get_drawer_trigger().get_model()->items();
|
||||
@ -1559,6 +1631,64 @@ namespace nana
|
||||
items.emplace_front(std::move(text), std::move(any));
|
||||
API::refresh_window(handle());
|
||||
}
|
||||
|
||||
std::size_t tabbar_lite::selected() const
|
||||
{
|
||||
auto model = get_drawer_trigger().get_model();
|
||||
internal_scope_guard lock;
|
||||
|
||||
return model->get_indexes().active_pos;
|
||||
}
|
||||
|
||||
void tabbar_lite::erase(std::size_t pos, bool close_attached)
|
||||
{
|
||||
auto model = get_drawer_trigger().get_model();
|
||||
internal_scope_guard lock;
|
||||
|
||||
const auto len = length();
|
||||
|
||||
if (len <= pos)
|
||||
throw std::out_of_range("invalid position of tabbar_lite");
|
||||
|
||||
auto active_pos = model->get_indexes().active_pos;
|
||||
|
||||
//selection_changed is used to determine whether the title will be updated
|
||||
bool selection_changed = true;
|
||||
if (pos == active_pos)
|
||||
{
|
||||
if (active_pos + 1 == len)
|
||||
{
|
||||
if (active_pos)
|
||||
--active_pos;
|
||||
else
|
||||
active_pos = npos;
|
||||
}
|
||||
}
|
||||
else if (pos < active_pos)
|
||||
--active_pos;
|
||||
else
|
||||
selection_changed = false;
|
||||
|
||||
model->get_indexes().active_pos = active_pos;
|
||||
|
||||
auto i = model->items().cbefore_begin();
|
||||
std::advance(i, pos);
|
||||
|
||||
auto attached_wd = std::next(i)->attached_window;
|
||||
|
||||
model->items().erase_after(i);
|
||||
|
||||
model->show_attached_window();
|
||||
API::refresh_window(handle());
|
||||
|
||||
if (close_attached && attached_wd)
|
||||
API::close_window(attached_wd);
|
||||
|
||||
if (selection_changed && (active_pos != npos))
|
||||
{
|
||||
event_arg arg;
|
||||
events().selected.emit(arg);
|
||||
}
|
||||
}
|
||||
//end class tabbar
|
||||
}
|
||||
}//end namespace nana
|
||||
|
@ -305,7 +305,7 @@ namespace nana
|
||||
|
||||
void widget::_m_move(int x, int y)
|
||||
{
|
||||
API::move_window(handle(), x, y);
|
||||
API::move_window(handle(), { x, y });
|
||||
}
|
||||
|
||||
void widget::_m_move(const rectangle& r)
|
||||
|
@ -1,108 +0,0 @@
|
||||
/*
|
||||
* Graphics Gadget Implementation
|
||||
* Nana C++ Library(http://www.nanapro.org)
|
||||
* Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com)
|
||||
*
|
||||
* Distributed under the Boost Software License, Version 1.0.
|
||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||
* http://www.boost.org/LICENSE_1_0.txt)
|
||||
*
|
||||
* @file: nana/paint/gadget.cpp
|
||||
*/
|
||||
|
||||
#include <nana/paint/graphics.hpp>
|
||||
#include <nana/paint/gadget.hpp>
|
||||
|
||||
namespace nana
|
||||
{
|
||||
namespace paint
|
||||
{
|
||||
namespace gadget
|
||||
{
|
||||
void close_16_pixels(::nana::paint::graphics& graph, int x, int y, unsigned style, const ::nana::color& clr)
|
||||
{
|
||||
graph.set_color(clr);
|
||||
if(0 == style)
|
||||
{
|
||||
x += 3;
|
||||
y += 3;
|
||||
|
||||
graph.line({ x, y }, { x + 9, y + 9 });
|
||||
graph.line({ x + 1, y }, { x + 9, y + 8 });
|
||||
graph.line({ x, y + 1 }, { x + 8, y + 9 });
|
||||
|
||||
graph.line({ x + 9, y }, { x, y + 9 });
|
||||
graph.line({ x + 8, y }, { x, y + 8 });
|
||||
graph.line({ x + 9, y + 1 }, { x + 1, y + 9 });
|
||||
}
|
||||
else
|
||||
{
|
||||
x += 4;
|
||||
y += 4;
|
||||
|
||||
graph.line({ x, y }, { x + 7, y + 7 });
|
||||
graph.line({ x + 1, y }, { x + 7, y + 6 });
|
||||
graph.line({ x, y + 1 }, { x + 6, y + 7 });
|
||||
|
||||
graph.line({ x + 7, y }, { x, y + 7 });
|
||||
graph.line({ x + 6, y }, { x, y + 6 });
|
||||
graph.line({ x + 7, y + 1 }, { x + 1, y + 7 });
|
||||
}
|
||||
}
|
||||
|
||||
void cross(graphics& graph, int x, int y, unsigned size, unsigned thickness, const ::nana::color& clr)
|
||||
{
|
||||
if (thickness + 2 <= size)
|
||||
{
|
||||
int gap = (size - thickness) / 2;
|
||||
|
||||
nana::point ps[12];
|
||||
ps[0].x = x + gap;
|
||||
ps[1].x = ps[0].x + thickness - 1;
|
||||
ps[1].y = ps[0].y = y;
|
||||
|
||||
ps[2].x = ps[1].x;
|
||||
ps[2].y = y + gap;
|
||||
|
||||
ps[3].x = ps[2].x + gap;
|
||||
ps[3].y = ps[2].y;
|
||||
|
||||
ps[4].x = ps[3].x;
|
||||
ps[4].y = ps[3].y + thickness - 1;
|
||||
|
||||
ps[5].x = ps[1].x;
|
||||
ps[5].y = ps[4].y;
|
||||
|
||||
ps[6].x = ps[5].x;
|
||||
ps[6].y = ps[5].y + gap;
|
||||
|
||||
ps[7].x = x + gap;
|
||||
ps[7].y = ps[6].y;
|
||||
|
||||
ps[8].x = ps[7].x;
|
||||
ps[8].y = ps[4].y;
|
||||
|
||||
ps[9].x = x;
|
||||
ps[9].y = ps[4].y;
|
||||
|
||||
ps[10].x = x;
|
||||
ps[10].y = y + gap;
|
||||
|
||||
ps[11].x = x + gap;
|
||||
ps[11].y = y + gap;
|
||||
|
||||
graph.set_color(clr.blend(colors::black, true));
|
||||
|
||||
for (int i = 0; i < 11; ++i)
|
||||
graph.line(ps[i], ps[i + 1]);
|
||||
graph.line(ps[11], ps[0]);
|
||||
|
||||
graph.set_color(clr);
|
||||
graph.rectangle(rectangle{ ps[10].x + 1, ps[10].y + 1, (gap << 1) + thickness - 2, thickness - 2 }, true);
|
||||
graph.rectangle(rectangle{ ps[0].x + 1, ps[0].y + 1, thickness - 2, (gap << 1) + thickness - 2 }, true);
|
||||
}
|
||||
}
|
||||
}//end namespace gadget
|
||||
|
||||
}//end namespace paint
|
||||
}//end namespace nana
|
@ -845,13 +845,13 @@ namespace paint
|
||||
BITMAPFILEHEADER bmFileHeader = { 0 };
|
||||
bmFileHeader.bfType = 0x4d42; //bmp
|
||||
bmFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
|
||||
bmFileHeader.bfSize = bmFileHeader.bfOffBits + imageBytes;
|
||||
bmFileHeader.bfSize = bmFileHeader.bfOffBits + static_cast<DWORD>(imageBytes);
|
||||
|
||||
HANDLE hFile = ::CreateFileW(static_cast<std::wstring>(::nana::charset(file_utf8, ::nana::unicode::utf8)).data(), GENERIC_WRITE, 0, nullptr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
DWORD dwWrite = 0;
|
||||
::WriteFile(hFile, &bmFileHeader, sizeof(BITMAPFILEHEADER), &dwWrite, nullptr);
|
||||
::WriteFile(hFile, &bmpInfo.bmiHeader, sizeof(BITMAPINFOHEADER), &dwWrite, nullptr);
|
||||
::WriteFile(hFile, pData, imageBytes, &dwWrite, nullptr);
|
||||
::WriteFile(hFile, pData, static_cast<DWORD>(imageBytes), &dwWrite, nullptr);
|
||||
::CloseHandle(hFile);
|
||||
|
||||
::DeleteObject(hBmp);
|
||||
@ -874,6 +874,27 @@ namespace paint
|
||||
handle_->set_text_color(col);
|
||||
}
|
||||
|
||||
::nana::color graphics::palette(bool for_text) const
|
||||
{
|
||||
if (handle_)
|
||||
return static_cast<color_rgb>(for_text ? handle_->get_text_color() : handle_->get_color());
|
||||
|
||||
return{};
|
||||
}
|
||||
|
||||
graphics& graphics::palette(bool for_text, const ::nana::color& clr)
|
||||
{
|
||||
if (handle_)
|
||||
{
|
||||
if (for_text)
|
||||
handle_->set_text_color(clr);
|
||||
else
|
||||
handle_->set_color(clr);
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
unsigned graphics::bidi_string(const nana::point& pos, const char_t * str, std::size_t len)
|
||||
{
|
||||
auto moved_pos = pos;
|
||||
|
@ -118,11 +118,12 @@ namespace nana
|
||||
{
|
||||
graphics & graph;
|
||||
int x, endpos;
|
||||
::nana::color fgcolor;
|
||||
//::nana::color fgcolor; //deprecated
|
||||
unsigned omitted_pixels;
|
||||
nana::unicode_bidi bidi;
|
||||
std::vector<nana::unicode_bidi::entity> reordered;
|
||||
|
||||
/* //deprecated
|
||||
draw_string_omitted(graphics& graph, int x, int endpos, const ::nana::color& fgcolor, bool omitted)
|
||||
: graph(graph), x(x), endpos(endpos), fgcolor(fgcolor)
|
||||
{
|
||||
@ -132,6 +133,7 @@ namespace nana
|
||||
else
|
||||
this->endpos = x;
|
||||
}
|
||||
*/
|
||||
|
||||
draw_string_omitted(graphics& graph, int x, int endpos, bool omitted)
|
||||
: graph(graph), x(x), endpos(endpos)
|
||||
@ -169,7 +171,8 @@ namespace nana
|
||||
nana::paint::graphics dum_graph({ r.width, r.height });
|
||||
|
||||
dum_graph.bitblt(r, graph, pos);
|
||||
dum_graph.set_text_color(fgcolor);
|
||||
//dum_graph.set_text_color(fgcolor); //deprecated
|
||||
dum_graph.set_text_color(graph.palette(true));
|
||||
dum_graph.string({}, i.begin, len);
|
||||
|
||||
r.x = pos.x;
|
||||
|
Loading…
x
Reference in New Issue
Block a user