add new methods to textbox for line count
This commit is contained in:
		
							parent
							
								
									33321d73de
								
							
						
					
					
						commit
						b5db21567f
					
				| @ -183,6 +183,8 @@ namespace nana{	namespace widgets | |||||||
| 
 | 
 | ||||||
| 			void focus_behavior(text_focus_behavior); | 			void focus_behavior(text_focus_behavior); | ||||||
| 			void select_behavior(bool move_to_end); | 			void select_behavior(bool move_to_end); | ||||||
|  | 
 | ||||||
|  | 			std::size_t line_count(bool text_lines) const; | ||||||
| 		public: | 		public: | ||||||
| 			void draw_corner(); | 			void draw_corner(); | ||||||
| 			void render(bool focused); | 			void render(bool focused); | ||||||
|  | |||||||
| @ -257,6 +257,17 @@ namespace nana | |||||||
| 		 * @param len The length of the queue. If this parameter is zero, the undo/redo is disabled. | 		 * @param len The length of the queue. If this parameter is zero, the undo/redo is disabled. | ||||||
| 		 */ | 		 */ | ||||||
| 		void set_undo_queue_length(std::size_t len); | 		void set_undo_queue_length(std::size_t len); | ||||||
|  | 
 | ||||||
|  | 		/// Returns the number of lines that text are displayed in the screen.
 | ||||||
|  | 		/**
 | ||||||
|  | 		 * The number of display lines may be not equal to the number of text lines when the textbox | ||||||
|  | 		 * is line wrapped mode. | ||||||
|  | 		 * @return the number of lines that text are displayed in the screen. | ||||||
|  | 		 */ | ||||||
|  | 		std::size_t display_line_count() const; | ||||||
|  | 
 | ||||||
|  | 		/// Returns the number of text lines.
 | ||||||
|  | 		std::size_t text_line_count() const; | ||||||
| 	protected: | 	protected: | ||||||
| 		//Overrides widget's virtual functions
 | 		//Overrides widget's virtual functions
 | ||||||
| 		native_string_type _m_caption() const throw() override; | 		native_string_type _m_caption() const throw() override; | ||||||
|  | |||||||
| @ -1872,6 +1872,14 @@ namespace nana{	namespace widgets | |||||||
| 			select_.move_to_end = move_to_end; | 			select_.move_to_end = move_to_end; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		std::size_t text_editor::line_count(bool text_lines) const | ||||||
|  | 		{ | ||||||
|  | 			if (text_lines) | ||||||
|  | 				return textbase().lines(); | ||||||
|  | 
 | ||||||
|  | 			return impl_->capacities.behavior->take_lines(); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		void text_editor::draw_corner() | 		void text_editor::draw_corner() | ||||||
| 		{ | 		{ | ||||||
| 			impl_->cview->draw_corner(graph_); | 			impl_->cview->draw_corner(graph_); | ||||||
|  | |||||||
| @ -720,6 +720,26 @@ namespace drawerbase { | |||||||
| 				editor->set_undo_queue_length(len); | 				editor->set_undo_queue_length(len); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		std::size_t textbox::display_line_count() const | ||||||
|  | 		{ | ||||||
|  | 			internal_scope_guard lock; | ||||||
|  | 			auto editor = get_drawer_trigger().editor(); | ||||||
|  | 			if (editor) | ||||||
|  | 				return editor->line_count(false); | ||||||
|  | 
 | ||||||
|  | 			return 0; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		std::size_t textbox::text_line_count() const | ||||||
|  | 		{ | ||||||
|  | 			internal_scope_guard lock; | ||||||
|  | 			auto editor = get_drawer_trigger().editor(); | ||||||
|  | 			if (editor) | ||||||
|  | 				return editor->line_count(true); | ||||||
|  | 
 | ||||||
|  | 			return 0; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		//Override _m_caption for caption()
 | 		//Override _m_caption for caption()
 | ||||||
| 		auto textbox::_m_caption() const throw() -> native_string_type | 		auto textbox::_m_caption() const throw() -> native_string_type | ||||||
| 		{ | 		{ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinhao
						Jinhao