fix crash that deprecation is included in NANA_IGNORE_CONF
it crashs when build with CMake
This commit is contained in:
		
							parent
							
								
									484b84189f
								
							
						
					
					
						commit
						d701650cd5
					
				| @ -25,7 +25,11 @@ | ||||
| 
 | ||||
| #include "c++defines.hpp" | ||||
| 
 | ||||
| //The basic configurations are ignored when NANA_IGNORE_CONF is defined.
 | ||||
| //This marco is defined since 1.4 and until 1.5 for deprecating frame widget.
 | ||||
| //This marco and class frame will be removed in version 1.5
 | ||||
| #define WIDGET_FRAME_DEPRECATED | ||||
| 
 | ||||
| //The following basic configurations are ignored when NANA_IGNORE_CONF is defined.
 | ||||
| //The NANA_IGNORE_CONF may be specified by CMake generated makefile.
 | ||||
| #ifndef NANA_IGNORE_CONF | ||||
| 
 | ||||
| @ -93,10 +97,6 @@ | ||||
| 	#endif | ||||
| #endif | ||||
| 
 | ||||
| //This marco is defined since 1.4 and until 1.5 for deprecating frame widget.
 | ||||
| //This marco and class frame will be removed in version 1.5
 | ||||
| #define WIDGET_FRAME_DEPRECATED | ||||
| 
 | ||||
| ///////////////////
 | ||||
| //  Support for NANA_AUTOMATIC_GUI_TESTING
 | ||||
| //	  Will cause the program to self-test the GUI. A default automatic GUI test 
 | ||||
|  | ||||
| @ -212,18 +212,11 @@ namespace detail | ||||
| 
 | ||||
| 			struct	attr_root_tag | ||||
| 			{ | ||||
| 				attr_root_tag(const attr_root_tag&) = delete; | ||||
| 				attr_root_tag(attr_root_tag&&) = delete; | ||||
| #ifndef WIDGET_FRAME_DEPRECATED | ||||
| 				container	frames;	///< initialization is null, it will be created while creating a frame widget. Refer to WindowManager::create_frame
 | ||||
| #endif | ||||
| 				//Following p_xxx pointers are used for debugging
 | ||||
| 				container * p_tabstop; | ||||
| 				std::vector<edge_nimbus_action> * p_effects; | ||||
| 				std::function<void()> * p_draw_through; | ||||
| 
 | ||||
| 				container&	tabstop; | ||||
| 				std::vector<edge_nimbus_action>& effects_edge_nimbus; | ||||
| 				container	tabstop; | ||||
| 				std::vector<edge_nimbus_action> effects_edge_nimbus; | ||||
| 				basic_window*	focus{nullptr}; | ||||
| 				basic_window*	menubar{nullptr}; | ||||
| 				bool			ime_enabled{false}; | ||||
| @ -233,18 +226,7 @@ namespace detail | ||||
| 				cursor			state_cursor{nana::cursor::arrow}; | ||||
| 				basic_window*	state_cursor_window{ nullptr }; | ||||
| 
 | ||||
| 				std::function<void()>& draw_through;	///< A draw through renderer for root widgets.
 | ||||
| 
 | ||||
| 				attr_root_tag(): | ||||
| 					p_tabstop(new container), | ||||
| 					p_effects(new std::vector<edge_nimbus_action>), | ||||
| 					p_draw_through(new std::function<void()>), | ||||
| 					tabstop(*p_tabstop), | ||||
| 					effects_edge_nimbus(*p_effects), | ||||
| 					draw_through(*p_draw_through) | ||||
| 				{} | ||||
| 
 | ||||
| 				~attr_root_tag(); | ||||
| 				std::function<void()> draw_through;	///< A draw through renderer for root widgets.
 | ||||
| 			}; | ||||
| 
 | ||||
| 			const category::flags category; | ||||
| @ -262,7 +244,6 @@ namespace detail | ||||
| 			}attribute; | ||||
| 
 | ||||
| 			other_tag(category::flags); | ||||
| 			~other_tag(); | ||||
| 		}other; | ||||
| 
 | ||||
| 		native_window_type	root;		    ///< root Window handle
 | ||||
|  | ||||
| @ -13,8 +13,6 @@ | ||||
| #include <nana/gui/detail/basic_window.hpp> | ||||
| #include <nana/gui/detail/native_window_interface.hpp> | ||||
| 
 | ||||
| #include <iostream> //debug travis
 | ||||
| 
 | ||||
| namespace nana | ||||
| { | ||||
| 	namespace detail | ||||
| @ -209,34 +207,33 @@ namespace nana | ||||
| 		//end class caret
 | ||||
| 
 | ||||
| 		//struct basic_window
 | ||||
| 			basic_window::other_tag::attr_root_tag::~attr_root_tag() | ||||
| 			{ | ||||
| 				std::cout<<"~attr_root_tag "<<this<<std::endl; | ||||
| 			} | ||||
| 			//struct basic_window::other_tag
 | ||||
| 				basic_window::other_tag::other_tag(category::flags categ) | ||||
| 					: category(categ), active_window(nullptr), upd_state(update_state::none) | ||||
| 				{ | ||||
| #ifndef WIDGET_FRAME_DEPRECATED | ||||
| 					switch(categ) | ||||
| 					{ | ||||
| 					case category::flags::root: | ||||
| 						attribute.root = new attr_root_tag; | ||||
| 						std::cout<<"basic_window: create attr root "<<attribute.root<<std::endl; | ||||
| 						break; | ||||
| #ifndef WIDGET_FRAME_DEPRECATED | ||||
| 					case category::flags::frame: | ||||
| 						attribute.frame = new attr_frame_tag; | ||||
| 						break; | ||||
| #endif | ||||
| 					default: | ||||
| 						attribute.root = nullptr; | ||||
| 					} | ||||
| #else | ||||
| 					if (category::flags::root == categ) | ||||
| 						attribute.root = new attr_root_tag; | ||||
| 					else | ||||
| 						attribute.root = nullptr; | ||||
| #endif | ||||
| 				} | ||||
| 
 | ||||
| 				basic_window::other_tag::~other_tag() | ||||
| 				{ | ||||
| #ifndef WIDGET_FRAME_DEPRECATED | ||||
| 					std::cout<<"~other_tag "<<this<<std::endl; | ||||
| 					switch(category) | ||||
| 					{ | ||||
| 					case category::flags::root: | ||||
| @ -248,14 +245,8 @@ namespace nana | ||||
| 					default: break; | ||||
| 					} | ||||
| #endif | ||||
| 
 | ||||
| 					if (category::flags::root == category) | ||||
| 					{ | ||||
| 						std::cout<<"basic_window: delete attr root "<<attribute.root<<std::endl; | ||||
| 						std::cout<<"basic_window: root.effects size "<<attribute.root->effects_edge_nimbus.size()<<std::endl; | ||||
| 						delete attribute.root; | ||||
| 						std::cout<<"    delete successfully"<<std::endl; | ||||
| 					} | ||||
| 				} | ||||
| 			//end struct basic_window::other_tag
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinhao
						Jinhao