mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 14:10:05 +00:00 
			
		
		
		
	Creating flow layout
This commit is contained in:
		
							parent
							
								
									9ee52e7a6b
								
							
						
					
					
						commit
						cd5d60bc0b
					
				
					 3 changed files with 346 additions and 0 deletions
				
			
		
							
								
								
									
										100
									
								
								scwx-qt/source/scwx/qt/ui/flow_layout.hpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								scwx-qt/source/scwx/qt/ui/flow_layout.hpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,100 @@ | |||
| /****************************************************************************
 | ||||
| ** | ||||
| ** Copyright (C) 2016 The Qt Company Ltd. | ||||
| ** Contact: https://www.qt.io/licensing/
 | ||||
| ** | ||||
| ** This file is part of the examples of the Qt Toolkit. | ||||
| ** | ||||
| ** $QT_BEGIN_LICENSE:BSD$ | ||||
| ** Commercial License Usage | ||||
| ** Licensees holding valid commercial Qt licenses may use this file in | ||||
| ** accordance with the commercial license agreement provided with the | ||||
| ** Software or, alternatively, in accordance with the terms contained in | ||||
| ** a written agreement between you and The Qt Company. For licensing terms | ||||
| ** and conditions see https://www.qt.io/terms-conditions. For further
 | ||||
| ** information use the contact form at https://www.qt.io/contact-us.
 | ||||
| ** | ||||
| ** BSD License Usage | ||||
| ** Alternatively, you may use this file under the terms of the BSD license | ||||
| ** as follows: | ||||
| ** | ||||
| ** "Redistribution and use in source and binary forms, with or without | ||||
| ** modification, are permitted provided that the following conditions are | ||||
| ** met: | ||||
| **   * Redistributions of source code must retain the above copyright | ||||
| **     notice, this list of conditions and the following disclaimer. | ||||
| **   * Redistributions in binary form must reproduce the above copyright | ||||
| **     notice, this list of conditions and the following disclaimer in | ||||
| **     the documentation and/or other materials provided with the | ||||
| **     distribution. | ||||
| **   * Neither the name of The Qt Company Ltd nor the names of its | ||||
| **     contributors may be used to endorse or promote products derived | ||||
| **     from this software without specific prior written permission. | ||||
| ** | ||||
| ** | ||||
| ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
| ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
| ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
| ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
| ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||
| ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||
| ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
| ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
| ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." | ||||
| ** | ||||
| ** $QT_END_LICENSE$ | ||||
| ** | ||||
| ****************************************************************************/ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <QLayout> | ||||
| #include <QStyle> | ||||
| 
 | ||||
| namespace scwx | ||||
| { | ||||
| namespace qt | ||||
| { | ||||
| namespace ui | ||||
| { | ||||
| 
 | ||||
| /* Adapted from:
 | ||||
|  * https://doc.qt.io/qt-6/qtwidgets-layouts-flowlayout-example.html
 | ||||
|  */ | ||||
| class FlowLayout : public QLayout | ||||
| { | ||||
| public: | ||||
|    explicit FlowLayout(QWidget* parent, | ||||
|                        int      margin   = -1, | ||||
|                        int      hSpacing = -1, | ||||
|                        int      vSpacing = -1); | ||||
|    explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1); | ||||
|    ~FlowLayout(); | ||||
| 
 | ||||
|    void             addItem(QLayoutItem* item) override; | ||||
|    int              horizontalSpacing() const; | ||||
|    int              verticalSpacing() const; | ||||
|    Qt::Orientations expandingDirections() const override; | ||||
|    bool             hasHeightForWidth() const override; | ||||
|    int              heightForWidth(int) const override; | ||||
|    int              count() const override; | ||||
|    QLayoutItem*     itemAt(int index) const override; | ||||
|    QSize            minimumSize() const override; | ||||
|    void             setGeometry(const QRect& rect) override; | ||||
|    QSize            sizeHint() const override; | ||||
|    QLayoutItem*     takeAt(int index) override; | ||||
| 
 | ||||
| private: | ||||
|    int doLayout(const QRect& rect, bool testOnly) const; | ||||
|    int smartSpacing(QStyle::PixelMetric pm) const; | ||||
| 
 | ||||
|    QList<QLayoutItem*> itemList_; | ||||
|    int                 hSpace_; | ||||
|    int                 vSpace_; | ||||
| }; | ||||
| 
 | ||||
| } // namespace ui
 | ||||
| } // namespace qt
 | ||||
| } // namespace scwx
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat