Merge branch 'hotfixes-1.0' into develop
This commit is contained in:
commit
57bd96a6ca
127
CMakeLists.txt
Normal file
127
CMakeLists.txt
Normal file
@ -0,0 +1,127 @@
|
||||
# CMake configuration for Nana
|
||||
# Author: Andrew Kornilov(https://github.com/ierofant)
|
||||
# Contributor:
|
||||
# Robert Hauck - Enable support for PNG/Freetype
|
||||
|
||||
project(nana)
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
|
||||
#Select platform automatically
|
||||
if(WIN32)
|
||||
add_definitions(-DNANA_WINDOWS)
|
||||
add_definitions(-DPLATFORM_SPEC_HPP=<nana/detail/win32/platform_spec.hpp>)
|
||||
|
||||
#Test if it is MINGW
|
||||
if(MINGW)
|
||||
add_definitions(-DNANA_MINGW)
|
||||
add_definitions(-DSTD_CODECVT_NOT_SUPPORTED)
|
||||
option(NANA_THREAD_NOT_SUPPORTED "Use this flag if MinGW version is older than 4.8.1" ON)
|
||||
if(NANA_THREAD_NOT_SUPPORTED)
|
||||
add_definitions(-DSTD_THREAD_NOT_SUPPORTED)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(UNIX)
|
||||
add_definitions(-DNANA_LINUX)
|
||||
add_definitions(-DNANA_X11)
|
||||
add_definitions(-DPLATFORM_SPEC_HPP=<nana/detail/linux_X11/platform_spec.hpp>)
|
||||
add_definitions(-DSTD_CODECVT_NOT_SUPPORTED)
|
||||
endif()
|
||||
|
||||
|
||||
#Global MSVC definitions
|
||||
if(WIN32)
|
||||
if(MSVC)
|
||||
option(WIN32_USE_MP "Set to ON to build nana with the /MP option (Visual Studio 2005 and above)." ON)
|
||||
if(WIN32_USE_MP)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||
endif()
|
||||
|
||||
# More MSVC specific compilation flags
|
||||
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
|
||||
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
endif(MSVC)
|
||||
endif(WIN32)
|
||||
|
||||
|
||||
#Unicode
|
||||
option(NANA_UNICODE "Use Unicode Character Set" ON)
|
||||
if(NANA_UNICODE)
|
||||
add_definitions(-DNANA_UNICODE)
|
||||
if(WIN32)
|
||||
add_definitions(-DUNICODE -D_UNICODE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
#Find PNG
|
||||
if(UNIX)
|
||||
find_package(Freetype)
|
||||
if (FREETYPE_FOUND)
|
||||
include_directories( ${FREETYPE_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(NANA_ENABLE_PNG "Enable the use of PNG" ON)
|
||||
if(NANA_ENABLE_PNG)
|
||||
add_definitions(-DNANA_ENABLE_PNG)
|
||||
|
||||
option(NANA_LIBPNG "Use the included libpng" ON)
|
||||
if(NANA_LIBPNG)
|
||||
add_definitions(-DNANA_LIBPNG)
|
||||
else()
|
||||
find_package(PNG)
|
||||
if (PNG_FOUND)
|
||||
include_directories( ${PNG_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
#Copy our new config.hpp (with removed defines)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/build/cmake/config.hpp ${CMAKE_SOURCE_DIR}/include/nana/)
|
||||
|
||||
|
||||
set(NANA_SOURCE_DIR ${CMAKE_SOURCE_DIR}/source)
|
||||
set(NANA_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
||||
endif(CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
include_directories(${NANA_INCLUDE_DIR})
|
||||
aux_source_directory(${NANA_SOURCE_DIR} NANA_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/detail NANA_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/filesystem NANA_FILESYSTEM_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/audio NANA_AUDIO_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/audio/detail NANA_AUDIO_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui NANA_GUI_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/detail NANA_GUI_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/widgets NANA_GUI_WIDGETS_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/widgets/skeletons NANA_GUI_WIDGETS_SKELETONS_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/paint NANA_PAINT_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/paint/detail NANA_PAINT_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/system NANA_SYSTEM_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/threads NANA_THREADS_SOURCE)
|
||||
|
||||
add_library(${PROJECT_NAME} ${NANA_SOURCE}
|
||||
${NANA_DETAIL_SOURCE}
|
||||
${NANA_FILESYSTEM_SOURCE}
|
||||
${NANA_AUDIO_SOURCE}
|
||||
${NANA_AUDIO_DETAIL_SOURCE}
|
||||
${NANA_GUI_SOURCE}
|
||||
${NANA_GUI_DETAIL_SOURCE}
|
||||
${NANA_GUI_WIDGETS_SOURCE}
|
||||
${NANA_GUI_WIDGETS_SKELETONS_SOURCE}
|
||||
${NANA_PAINT_SOURCE}
|
||||
${NANA_PAINT_DETAIL_SOURCE}
|
||||
${NANA_SYSTEM_SOURCE}
|
||||
${NANA_THREADS_SOURCE})
|
||||
|
||||
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib)
|
||||
install(DIRECTORY ${NANA_INCLUDE_DIR}/nana DESTINATION include)
|
@ -1,50 +0,0 @@
|
||||
# CMake configuration for Nana
|
||||
# Author: ierofant(https://github.com/ierofant)
|
||||
|
||||
project(nana)
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
string(REGEX REPLACE "/[^/]*$" "" CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
string(REGEX REPLACE "/[^/]*$" "" CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
|
||||
set(NANA_SOURCE_DIR ${CMAKE_SOURCE_DIR}/source)
|
||||
set(NANA_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
||||
endif(CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
include_directories(${NANA_INCLUDE_DIR})
|
||||
aux_source_directory(${NANA_SOURCE_DIR} NANA_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/detail NANA_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/filesystem NANA_FILESYSTEM_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/audio NANA_AUDIO_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/audio/detail NANA_AUDIO_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui NANA_GUI_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/detail NANA_GUI_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/widgets NANA_GUI_WIDGETS_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/gui/widgets/skeletons NANA_GUI_WIDGETS_SKELETONS_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/paint NANA_PAINT_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/paint/detail NANA_PAINT_DETAIL_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/system NANA_SYSTEM_SOURCE)
|
||||
aux_source_directory(${NANA_SOURCE_DIR}/threads NANA_THREADS_SOURCE)
|
||||
|
||||
add_library(${PROJECT_NAME} ${NANA_SOURCE}
|
||||
${NANA_DETAIL_SOURCE}
|
||||
${NANA_FILESYSTEM_SOURCE}
|
||||
${NANA_AUDIO_SOURCE}
|
||||
${NANA_AUDIO_DETAIL_SOURCE}
|
||||
${NANA_GUI_SOURCE}
|
||||
${NANA_GUI_DETAIL_SOURCE}
|
||||
${NANA_GUI_WIDGETS_SOURCE}
|
||||
${NANA_GUI_WIDGETS_SKELETONS_SOURCE}
|
||||
${NANA_PAINT_SOURCE}
|
||||
${NANA_PAINT_DETAIL_SOURCE}
|
||||
${NANA_SYSTEM_SOURCE}
|
||||
${NANA_THREADS_SOURCE})
|
||||
|
||||
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib)
|
||||
install(DIRECTORY ${NANA_INCLUDE_DIR}/nana DESTINATION include)
|
18
build/cmake/config.hpp
Normal file
18
build/cmake/config.hpp
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Nana Configuration
|
||||
* Nana C++ Library(http://www.nanapro.org)
|
||||
* Copyright(C) 2003-2014 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/config.hpp
|
||||
*/
|
||||
|
||||
#ifndef NANA_CONFIG_HPP
|
||||
#define NANA_CONFIG_HPP
|
||||
|
||||
//All defines have been moved to the CMakelists.txt in the root directory.
|
||||
|
||||
#endif //NANA_CONFIG_HPP
|
@ -1320,6 +1320,7 @@ namespace detail
|
||||
arg.ignore = false;
|
||||
brock.emit(event_code::shortkey, msgwnd, arg, true, &context);
|
||||
}
|
||||
def_window_proc = true;
|
||||
break;
|
||||
case WM_SYSKEYDOWN:
|
||||
if(brock.whether_keyboard_shortkey() == false)
|
||||
@ -1340,6 +1341,7 @@ namespace detail
|
||||
else if(brock.get_menu())
|
||||
brock.remove_menu();
|
||||
}
|
||||
def_window_proc = true;
|
||||
break;
|
||||
case WM_SYSKEYUP:
|
||||
if(brock.set_keyboard_shortkey(false) == false)
|
||||
@ -1356,6 +1358,7 @@ namespace detail
|
||||
brock.emit(event_code::key_release, msgwnd, arg, true, &context);
|
||||
}
|
||||
}
|
||||
def_window_proc = true;
|
||||
break;
|
||||
case WM_KEYDOWN:
|
||||
if(msgwnd->flags.enabled)
|
||||
|
@ -198,12 +198,12 @@ namespace nana
|
||||
|
||||
unsigned vcur() const
|
||||
{
|
||||
return attr_.vcur;
|
||||
return static_cast<unsigned>(attr_.vcur);
|
||||
}
|
||||
|
||||
void resize()
|
||||
{
|
||||
this->_m_mk_slider_pos_by_value();
|
||||
_m_mk_slider_pos_by_value();
|
||||
attr_.adorn_pos = attr_.pos;
|
||||
}
|
||||
|
||||
@ -338,16 +338,18 @@ namespace nana
|
||||
|
||||
unsigned move_step(bool forward)
|
||||
{
|
||||
unsigned cmpvalue = attr_.vcur;
|
||||
unsigned cmpvalue = static_cast<unsigned>(attr_.vcur);
|
||||
auto value = cmpvalue;
|
||||
if(forward)
|
||||
{
|
||||
if(attr_.vcur)
|
||||
--attr_.vcur;
|
||||
if (value)
|
||||
--value;
|
||||
}
|
||||
else if(attr_.vcur < attr_.vmax)
|
||||
++attr_.vcur;
|
||||
else if (value < attr_.vmax)
|
||||
++value;
|
||||
|
||||
if(cmpvalue != attr_.vcur)
|
||||
attr_.vcur = value;
|
||||
if (cmpvalue != value)
|
||||
{
|
||||
_m_mk_slider_pos_by_value();
|
||||
draw();
|
||||
@ -436,32 +438,29 @@ namespace nana
|
||||
return static_cast<int>(_m_scale() * attr_.vcur / attr_.vmax);
|
||||
}
|
||||
|
||||
unsigned _m_mk_slider_value_by_pos()
|
||||
void _m_mk_slider_value_by_pos()
|
||||
{
|
||||
if(_m_scale())
|
||||
{
|
||||
auto cmpvalue = attr_.vcur;
|
||||
attr_.vcur = static_cast<unsigned>(attr_.pos * attr_.vmax / _m_scale());
|
||||
if (cmpvalue != attr_.vcur)
|
||||
auto cmpvalue = static_cast<int>(attr_.vcur);
|
||||
attr_.vcur = (attr_.pos * attr_.vmax / _m_scale());
|
||||
if (cmpvalue != static_cast<int>(attr_.vcur))
|
||||
_m_emit_value_changed();
|
||||
}
|
||||
return attr_.vcur;
|
||||
}
|
||||
|
||||
int _m_mk_slider_pos_by_value()
|
||||
void _m_mk_slider_pos_by_value()
|
||||
{
|
||||
attr_.pos = double(_m_scale()) * attr_.vcur / attr_.vmax;
|
||||
|
||||
if(slider_state_.trace == slider_state_.TraceNone)
|
||||
attr_.adorn_pos = attr_.pos;
|
||||
|
||||
return static_cast<int>(attr_.pos);
|
||||
}
|
||||
|
||||
unsigned _m_value_by_pos(double pos) const
|
||||
{
|
||||
if(_m_scale())
|
||||
return static_cast<int>(pos * attr_.vmax / _m_scale());
|
||||
return static_cast<unsigned>(pos * attr_.vmax / _m_scale());
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -548,7 +547,7 @@ namespace nana
|
||||
style dir;
|
||||
unsigned border;
|
||||
unsigned vmax;
|
||||
unsigned vcur;
|
||||
double vcur;
|
||||
double pos;
|
||||
bool is_draw_adorn;
|
||||
double adorn_pos;
|
||||
|
Loading…
x
Reference in New Issue
Block a user