Merge branch 'beru-develop' into develop
This commit is contained in:
		
						commit
						43eb4eebd4
					
				@ -98,10 +98,10 @@ namespace nana
 | 
			
		||||
		void clear_filter();
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		void _m_reset_overrided();
 | 
			
		||||
		bool _m_overrided(event_code) const;
 | 
			
		||||
		void _m_reset_overridden();
 | 
			
		||||
		bool _m_overridden(event_code) const;
 | 
			
		||||
	private:
 | 
			
		||||
		unsigned overrided_{ 0xFFFFFFFF };
 | 
			
		||||
		unsigned overridden_{ 0xFFFFFFFF };
 | 
			
		||||
		unsigned evt_disabled_{ 0 }; // bit set if event is filtered
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
@ -117,8 +117,8 @@ namespace nana
 | 
			
		||||
			enum class method_state
 | 
			
		||||
			{
 | 
			
		||||
				pending,
 | 
			
		||||
				overrided,
 | 
			
		||||
				not_overrided
 | 
			
		||||
				overridden,
 | 
			
		||||
				not_overridden
 | 
			
		||||
			};
 | 
			
		||||
		public:
 | 
			
		||||
			drawer();
 | 
			
		||||
@ -165,7 +165,7 @@ namespace nana
 | 
			
		||||
				auto realizer = this->realizer();
 | 
			
		||||
				auto & mth_state = _m_mth_state(pos);
 | 
			
		||||
 | 
			
		||||
				if (realizer && (method_state::not_overrided != mth_state))
 | 
			
		||||
				if (realizer && (method_state::not_overridden != mth_state))
 | 
			
		||||
				{
 | 
			
		||||
					const bool bFiltered = !bForce__EmitInternal && realizer->filter_event(evt_code);
 | 
			
		||||
					if (method_state::pending == mth_state)
 | 
			
		||||
@ -176,7 +176,7 @@ namespace nana
 | 
			
		||||
						//Check realizer, when the window is closed in that event handler, the drawer will be
 | 
			
		||||
						//detached and realizer will be a nullptr
 | 
			
		||||
						if (realizer)
 | 
			
		||||
							mth_state = (realizer->_m_overrided(evt_code) ? method_state::overrided : method_state::not_overrided);
 | 
			
		||||
							mth_state = (realizer->_m_overridden(evt_code) ? method_state::overridden : method_state::not_overridden);
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ namespace nana
 | 
			
		||||
		mouse_wheel,		///< A mouse scrolls the wheel on a widget.
 | 
			
		||||
		mouse_drop,			///< A mouse release over a window that is registered as recipient of drag and drop.
 | 
			
		||||
		expose,				///< 
 | 
			
		||||
		resizing, 			///< A widget's size is sizing. In this event, A widget's size can be overrided with a new size.
 | 
			
		||||
		resizing, 			///< A widget's size is sizing. In this event, A widget's size can be overridden with a new size.
 | 
			
		||||
		resized,			///< A widget's size is changing.
 | 
			
		||||
		move,				///< 
 | 
			
		||||
		unload,				///< A form is closed by clicking the X button, only works for root widget.
 | 
			
		||||
 | 
			
		||||
@ -17,10 +17,10 @@
 | 
			
		||||
 | 
			
		||||
namespace nana
 | 
			
		||||
{
 | 
			
		||||
	//overlap test if overlaped between r1 and r2
 | 
			
		||||
	//overlap test if overlapped between r1 and r2
 | 
			
		||||
	bool overlapped(const rectangle& r1, const rectangle& r2);
 | 
			
		||||
 | 
			
		||||
	// overlap, compute the overlap area between r1 and r2. the r is for root
 | 
			
		||||
	// overlap, compute the overlapping area between r1 and r2. the r is for root
 | 
			
		||||
	bool overlap(const rectangle& r1, const rectangle& r2, rectangle& r);
 | 
			
		||||
 | 
			
		||||
	bool overlap(const rectangle& ir, const size& valid_input_area, const rectangle & dr, const size& valid_dst_area, rectangle& output_src_r, rectangle& output_dst_r);
 | 
			
		||||
@ -37,7 +37,7 @@ namespace nana
 | 
			
		||||
 | 
			
		||||
	//covered
 | 
			
		||||
	//@brief:	Tests a rectangle whether it is wholly covered by another.
 | 
			
		||||
	bool covered(const rectangle& underlying, //Rectangle 1 is must under rectangle 2
 | 
			
		||||
	bool covered(const rectangle& underlying, // 1st rectangle must be placed under 2nd rectangle
 | 
			
		||||
						const rectangle& cover);
 | 
			
		||||
}//end namespace nana
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ namespace nana
 | 
			
		||||
	//Forward declaration of filebox for msgbox
 | 
			
		||||
	class filebox;
 | 
			
		||||
 | 
			
		||||
	/// Prefabricated modal dialog box (with text, icon and actions buttons) that inform and instruct the user.
 | 
			
		||||
	/// Prefabricated modal dialog box (with text, icon and actions buttons) that informs and instructs the user.
 | 
			
		||||
	class msgbox
 | 
			
		||||
	{
 | 
			
		||||
	public:
 | 
			
		||||
@ -34,19 +34,19 @@ namespace nana
 | 
			
		||||
		/// Identifiers of buttons that a user clicked.
 | 
			
		||||
		enum pick_t{pick_ok, pick_yes, pick_no, pick_cancel};
 | 
			
		||||
 | 
			
		||||
		/// Default construct that creates a message box with default title and default button, the default button is OK.
 | 
			
		||||
		/// Default constructor that creates a message box with default title and default button, the default button is OK.
 | 
			
		||||
		msgbox();
 | 
			
		||||
 | 
			
		||||
		/// Copy construct from an existing msgbox object.
 | 
			
		||||
		/// Copy constructor from an existing msgbox object.
 | 
			
		||||
		msgbox(const msgbox&);
 | 
			
		||||
 | 
			
		||||
		/// Assign from an existing msgbox object.
 | 
			
		||||
		msgbox& operator=(const msgbox&);
 | 
			
		||||
 | 
			
		||||
		/// Construct that creates a message box with a specified title and default button.
 | 
			
		||||
		/// Constructor that creates a message box with a specified title and default button.
 | 
			
		||||
		msgbox(const ::std::string&);
 | 
			
		||||
 | 
			
		||||
		/// Construct that creates a message box with an owner windoow, a specified title and buttons.
 | 
			
		||||
		/// Constructor that creates a message box with an owner windoow, a specified title and buttons.
 | 
			
		||||
		msgbox(window, const ::std::string&, button_t = ok);
 | 
			
		||||
 | 
			
		||||
		/// Sets an icon for informing user.
 | 
			
		||||
 | 
			
		||||
@ -186,7 +186,7 @@ namespace API
 | 
			
		||||
	void exit();	    ///< close all windows in current thread
 | 
			
		||||
	void exit_all();	///< close all windows
 | 
			
		||||
 | 
			
		||||
	/// @brief	Searchs whether the text contains a '&' and removes the character for transforming.
 | 
			
		||||
	/// @brief	Searches whether the text contains a '&' and removes the character for transforming.
 | 
			
		||||
	///			If the text contains more than one '&' charachers, the others are ignored. e.g
 | 
			
		||||
	///			text = "&&a&bcd&ef", the result should be "&abcdef", shortkey = 'b', and pos = 2.
 | 
			
		||||
	std::string transform_shortkey_text
 | 
			
		||||
@ -344,11 +344,11 @@ namespace API
 | 
			
		||||
 | 
			
		||||
	/// Refresh the window and display it immediately calling the refresh function of its drawer_trigger.
 | 
			
		||||
	/*
 | 
			
		||||
	 * The drawer::refresh() will be called. If the currently state is lazy_refrsh, the window is delayed to update the graphics until an event is finished.
 | 
			
		||||
	 * The drawer::refresh() will be called. If the current state is lazy_refrsh, the window is delayed to update the graphics until an event is finished.
 | 
			
		||||
	 * @param window_handle A handle to the window to be refreshed.
 | 
			
		||||
	 */
 | 
			
		||||
	void refresh_window(window window_handle);
 | 
			
		||||
	void refresh_window_tree(window);      ///< Refreshes the specified window and all its children windows, then display it immediately
 | 
			
		||||
	void refresh_window_tree(window);      ///< Refreshes the specified window and all its children windows, then displays it immediately
 | 
			
		||||
	void update_window(window);            ///< Copies the off-screen buffer to the screen for immediate display.
 | 
			
		||||
 | 
			
		||||
	void window_caption(window, const std::string& title_utf8);
 | 
			
		||||
@ -418,8 +418,8 @@ namespace API
 | 
			
		||||
	/// Enables or disables a window to receive a key_char event for pressing TAB key.
 | 
			
		||||
	/*
 | 
			
		||||
	 * @param window_handle A handle to the window to catch TAB key through key_char event.
 | 
			
		||||
	 * @param enable Indicates whether to enable or disable catch of TAB key. If this parameter is *true*, the window is
 | 
			
		||||
	 * received a key_char when pressing TAB key, and the input focus is not changed. If this parameter is *false*, the
 | 
			
		||||
	 * @param enable Indicates whether to enable or disable catch of TAB key. If this parameter is *true*, the window
 | 
			
		||||
	 * receives a key_char event when pressing TAB key, and the input focus is not changed. If this parameter is *false*, the
 | 
			
		||||
	 * input focus is changed to the next tabstop window.
 | 
			
		||||
	 */
 | 
			
		||||
	void eat_tabstop(window window_handle, bool enable);
 | 
			
		||||
 | 
			
		||||
@ -76,7 +76,7 @@ namespace nana
 | 
			
		||||
 | 
			
		||||
		bool chose() const;
 | 
			
		||||
		nana::date read() const;
 | 
			
		||||
		void weekstr(unsigned index, ::std::string);///<Set the week strings which will be displayed for day, index is in range of [0, 6]
 | 
			
		||||
		void weekstr(unsigned index, ::std::string);///<Set the week strings which will be displayed for day, index is in the range of [0, 6]
 | 
			
		||||
	};
 | 
			
		||||
}//end namespace nana
 | 
			
		||||
#include <nana/pop_ignore_diagnostic>
 | 
			
		||||
 | 
			
		||||
@ -51,7 +51,7 @@ namespace nana
 | 
			
		||||
		}//end namespace form
 | 
			
		||||
	}//end namespace drawerbase
 | 
			
		||||
 | 
			
		||||
	/// \brief Pop-up window. Is different from other window widgets: its default  constructor create the window.
 | 
			
		||||
	/// \brief Pop-up window. Is different from other window widgets: its default constructor creates the window.
 | 
			
		||||
	/// \see nana::appearance
 | 
			
		||||
	class form
 | 
			
		||||
		: public drawerbase::form::form_base
 | 
			
		||||
 | 
			
		||||
@ -55,12 +55,12 @@ namespace nana{
 | 
			
		||||
		/// The construction that creates the widget
 | 
			
		||||
		group(window parent, const rectangle& = {}, bool visible = true);
 | 
			
		||||
 | 
			
		||||
		///  The construction that creates the widget and set the titel or caption
 | 
			
		||||
		///  The construction that creates the widget and set the title or caption
 | 
			
		||||
 | 
			
		||||
		group(window			parent,		///< a handle to the parent
 | 
			
		||||
			  ::std::string	titel,		///< caption of the group
 | 
			
		||||
			  ::std::string		title,		///< caption of the group
 | 
			
		||||
			  bool				formatted = false,  ///< Enable/disable the formatted text for the title
 | 
			
		||||
			  unsigned			gap = 2,			///< betwen the content  and the external limit
 | 
			
		||||
			  unsigned			gap = 2,			///< between the content and the external limit
 | 
			
		||||
			  const rectangle&	r = {} ,
 | 
			
		||||
			  bool				visible = true
 | 
			
		||||
		     );
 | 
			
		||||
 | 
			
		||||
@ -79,7 +79,7 @@ namespace nana
 | 
			
		||||
		
 | 
			
		||||
		/// Deselects the menu
 | 
			
		||||
		/**
 | 
			
		||||
		 * If a menu is popped up, the menu deselects the item and close the popuped menu.
 | 
			
		||||
		 * If a menu is popped up, the menu deselects the item and close the pop-upped menu.
 | 
			
		||||
		 * @return true if an item is deselected, false otherwise.
 | 
			
		||||
		 */
 | 
			
		||||
		bool cancel();
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,7 @@ namespace nana
 | 
			
		||||
			};
 | 
			
		||||
		}// end namespace panel
 | 
			
		||||
	}//end namespace drawerbase
 | 
			
		||||
    /// For placing other widgets, where the bool template parameter determinte if it is  widget or lite_widget, wich in actual use make no difference.
 | 
			
		||||
    /// For placing other widgets, where the bool template parameter determinte if it is widget or lite_widget, which in actual use makes no difference.
 | 
			
		||||
	template<bool HasBackground>
 | 
			
		||||
	class panel
 | 
			
		||||
		: public widget_object<typename std::conditional<HasBackground, category::widget_tag, category::lite_widget_tag>::type,
 | 
			
		||||
 | 
			
		||||
@ -59,10 +59,10 @@ namespace nana
 | 
			
		||||
		/// Enables the image to be stretched to the widget size.
 | 
			
		||||
		void stretchable(unsigned left, unsigned top, unsigned right, unsigned bottom);
 | 
			
		||||
 | 
			
		||||
		/// Enables/disable the image to be stretched without changing aspect ratio.
 | 
			
		||||
		/// Enables/disables the image to be stretched without changing aspect ratio.
 | 
			
		||||
		void stretchable(bool);
 | 
			
		||||
 | 
			
		||||
        /// Fills a gradual-change color in background. If One of colors is invisible or clr_from is equal to clr_to, it draws background in bgcolor.
 | 
			
		||||
        /// Fills a gradual-change color in background. If one of colors is invisible or clr_from is equal to clr_to, it draws background in bgcolor.
 | 
			
		||||
		void set_gradual_background(const color& clr_from, const color& clr_to, bool horizontal);
 | 
			
		||||
		void transparent(bool);
 | 
			
		||||
		bool transparent() const;
 | 
			
		||||
 | 
			
		||||
@ -51,14 +51,14 @@ namespace nana
 | 
			
		||||
				using size_type = std::size_t;
 | 
			
		||||
 | 
			
		||||
				size_type peak;   ///< the whole total
 | 
			
		||||
				size_type range;  ///< how many is shonw on a page, that is, How many to scroll after click on first or second
 | 
			
		||||
				size_type range;  ///< how many is shown on a page, that is, How many to scroll after click on first or second
 | 
			
		||||
				size_type step;   ///< how many to scroll by click in forward  or backward
 | 
			
		||||
				size_type value;  ///< current offset calculated from the very beginnig
 | 
			
		||||
 | 
			
		||||
				buttons what;
 | 
			
		||||
				bool pressed;
 | 
			
		||||
				size_type	scroll_length;       ///< the lenght in pixels of the central button show how many of the total (peak) is shonw (range)
 | 
			
		||||
				int			scroll_pos;          ///< in pixels, and correspond to the offsset from the very beginning (value)
 | 
			
		||||
				size_type	scroll_length;       ///< the length in pixels of the central button show how many of the total (peak) is shown (range)
 | 
			
		||||
				int			scroll_pos;          ///< in pixels, and correspond to the offset from the very beginning (value)
 | 
			
		||||
				int			scroll_mouse_offset;
 | 
			
		||||
 | 
			
		||||
				metrics_type();
 | 
			
		||||
@ -348,7 +348,7 @@ namespace nana
 | 
			
		||||
 | 
			
		||||
		virtual void amount(size_type peak) = 0;
 | 
			
		||||
 | 
			
		||||
		/// Get the range of the widget (how many is shonw on a page, that is, How many to scroll after click on first or second)
 | 
			
		||||
		/// Get the range of the widget (how many is shown on a page, that is, How many to scroll after click on first or second)
 | 
			
		||||
		virtual size_type range() const = 0;
 | 
			
		||||
 | 
			
		||||
		/// Set the range of the widget.
 | 
			
		||||
@ -426,7 +426,7 @@ namespace nana
 | 
			
		||||
			return this->get_drawer_trigger().peak(peak);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/// Get the range of the widget (how many is shonw on a page, that is, How many to scroll after click on first or second)
 | 
			
		||||
		/// Get the range of the widget (how many is shown on a page, that is, How many to scroll after click on first or second)
 | 
			
		||||
		size_type range() const override
 | 
			
		||||
		{
 | 
			
		||||
			return this->get_drawer_trigger().metrics().range;
 | 
			
		||||
 | 
			
		||||
@ -86,7 +86,7 @@ namespace nana
 | 
			
		||||
		spinbox(window, const nana::rectangle& = {}, bool visible = true);
 | 
			
		||||
 | 
			
		||||
		/// Sets the widget whether it accepts user keyboard input.
 | 
			
		||||
		/// @param accept Set to indicate whether it accepts uesr keyboard input.
 | 
			
		||||
		/// @param accept Set to indicate whether it accepts user keyboard input.   
 | 
			
		||||
		void editable(bool accept);
 | 
			
		||||
 | 
			
		||||
		/// Determines whether the widget accepts user keyboard input.
 | 
			
		||||
@ -106,7 +106,7 @@ namespace nana
 | 
			
		||||
		/// Selects/unselects the text
 | 
			
		||||
		void select(bool);
 | 
			
		||||
 | 
			
		||||
		/// Gets the spined value
 | 
			
		||||
		/// Gets the spinned value
 | 
			
		||||
		::std::string value() const;
 | 
			
		||||
		void value(const ::std::string&);
 | 
			
		||||
		int to_int() const;
 | 
			
		||||
 | 
			
		||||
@ -33,99 +33,99 @@ namespace nana
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::resizing(graph_reference, const arg_resizing&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::resizing));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::resizing));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::resized(graph_reference graph, const arg_resized&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ |= (1 << static_cast<int>(event_code::resized));
 | 
			
		||||
			overridden_ |= (1 << static_cast<int>(event_code::resized));
 | 
			
		||||
			this->refresh(graph);
 | 
			
		||||
			detail::bedrock::instance().thread_context_lazy_refresh();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::move(graph_reference, const arg_move&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::move));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::move));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::click(graph_reference, const arg_click&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::click));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::click));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::dbl_click(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::dbl_click));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::dbl_click));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_enter(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_enter));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_enter));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_move(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_move));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_move));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_leave(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_leave));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_leave));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_down(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_down));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_down));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_up(graph_reference, const arg_mouse&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_up));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_up));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_wheel(graph_reference, const arg_wheel&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_wheel));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_wheel));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::mouse_dropfiles(graph_reference, const arg_dropfiles&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::mouse_drop));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::mouse_drop));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::focus(graph_reference, const arg_focus&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::focus));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::focus));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::key_press(graph_reference, const arg_keyboard&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::key_press));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::key_press));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::key_char(graph_reference, const arg_keyboard&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::key_char));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::key_char));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::key_release(graph_reference, const arg_keyboard&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::key_release));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::key_release));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::shortkey(graph_reference, const arg_keyboard&)
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ &= ~(1 << static_cast<int>(event_code::shortkey));
 | 
			
		||||
			overridden_ &= ~(1 << static_cast<int>(event_code::shortkey));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::_m_reset_overrided()
 | 
			
		||||
		void drawer_trigger::_m_reset_overridden()
 | 
			
		||||
		{
 | 
			
		||||
			overrided_ = 0xFFFFFFFF;
 | 
			
		||||
			overridden_ = 0xFFFFFFFF;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		bool drawer_trigger::_m_overrided(event_code evt_code) const
 | 
			
		||||
		bool drawer_trigger::_m_overridden(event_code evt_code) const
 | 
			
		||||
		{
 | 
			
		||||
			return 0 != (overrided_ & (1 << static_cast<int>(evt_code)));
 | 
			
		||||
			return 0 != (overridden_ & (1 << static_cast<int>(evt_code)));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		void drawer_trigger::filter_event(const event_code evt_code, const bool bDisabled)
 | 
			
		||||
@ -396,7 +396,7 @@ namespace nana
 | 
			
		||||
				*i = method_state::pending;
 | 
			
		||||
 | 
			
		||||
			data_impl_->realizer = &realizer;
 | 
			
		||||
			realizer._m_reset_overrided();
 | 
			
		||||
			realizer._m_reset_overridden();
 | 
			
		||||
			realizer.attached(wd, graphics);
 | 
			
		||||
			realizer.typeface_changed(graphics);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
 | 
			
		||||
namespace nana
 | 
			
		||||
{
 | 
			
		||||
	//overlap test if overlaped between r1 and r2
 | 
			
		||||
	//overlap test if overlapped between r1 and r2
 | 
			
		||||
	bool overlapped(const rectangle& r1, const rectangle& r2)
 | 
			
		||||
	{
 | 
			
		||||
		if (r1.y + (long long)(r1.height) <= r2.y) return false;
 | 
			
		||||
 | 
			
		||||
@ -49,8 +49,8 @@ static const char* field_options = "__nana_group_options__";
 | 
			
		||||
 | 
			
		||||
    implement() = default;
 | 
			
		||||
 | 
			
		||||
    implement(window grp_panel, ::std::string titel, bool vsb, unsigned gap=2)
 | 
			
		||||
        : caption (grp_panel, std::move(titel), vsb),
 | 
			
		||||
    implement(window grp_panel, ::std::string title, bool vsb, unsigned gap=2)
 | 
			
		||||
        : caption (grp_panel, std::move(title), vsb),
 | 
			
		||||
          place_content{grp_panel},
 | 
			
		||||
          gap{gap}
 | 
			
		||||
    {
 | 
			
		||||
@ -118,12 +118,12 @@ group::group(window parent, const rectangle& r, bool vsb)
 | 
			
		||||
 | 
			
		||||
using groupbase_type = widget_object<category::widget_tag, drawerbase::panel::drawer, general_events, drawerbase::group::scheme>;
 | 
			
		||||
 | 
			
		||||
group::group(window parent, ::std::string titel, bool formatted, unsigned  gap, const rectangle& r, bool vsb)
 | 
			
		||||
group::group(window parent, ::std::string title, bool formatted, unsigned  gap, const rectangle& r, bool vsb)
 | 
			
		||||
    : group(parent, r, vsb)
 | 
			
		||||
{
 | 
			
		||||
    this->bgcolor(API::bgcolor(parent));
 | 
			
		||||
 | 
			
		||||
    impl_.reset(new implement(*this, std::move(titel), vsb, gap));
 | 
			
		||||
    impl_.reset(new implement(*this, std::move(title), vsb, gap));
 | 
			
		||||
 | 
			
		||||
    impl_->caption.format(formatted);
 | 
			
		||||
    _m_init();
 | 
			
		||||
 | 
			
		||||
@ -285,7 +285,7 @@ namespace paint
 | 
			
		||||
		const void* graphics::pixmap() const
 | 
			
		||||
		{
 | 
			
		||||
			//The reinterpret_cast is used for same platform. Under Windows, the type
 | 
			
		||||
			//of pixmap can be conversed into void* directly, but under X11, the type is not a pointer.
 | 
			
		||||
			//of pixmap can be converted into void* directly, but under X11, the type is not a pointer.
 | 
			
		||||
			return (impl_->handle ? reinterpret_cast<void*>(impl_->handle->pixmap) : nullptr);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@ -310,7 +310,7 @@ namespace paint
 | 
			
		||||
					return;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				//The object will be delete while dwptr_ is performing a release.
 | 
			
		||||
				//The object will be deleted while dwptr_ is performing a release.
 | 
			
		||||
				std::shared_ptr<nana::detail::drawable_impl_type> dw{ new nana::detail::drawable_impl_type, detail::drawable_deleter{} };
 | 
			
		||||
 | 
			
		||||
				//Reuse the old font
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user