umbrello API Documentation

aligntoolbar.h

00001 /***************************************************************************
00002  *                                                                         *
00003  *   This program is free software; you can redistribute it and/or modify  *
00004  *   it under the terms of the GNU General Public License as published by  *
00005  *   the Free Software Foundation; either version 2 of the License, or     *
00006  *   (at your option) any later version.                                   *
00007  *                                                                         *
00008  *   copyright (C) 2004-2006                                               *
00009  *   Umbrello UML Modeller Authors <uml-devel@uml.sf.net>                  *
00010  ***************************************************************************/
00011 
00012 #ifndef ALIGNTOOLBAR_H
00013 #define ALIGNTOOLBAR_H
00014 
00015 #include <qpixmap.h>
00016 #include <ktoolbar.h>
00017 #include "umlnamespace.h"
00018 #include "umlwidgetlist.h"
00019 
00020 class QMainWindow;
00021 class UMLWidget;
00022 
00031 class AlignToolBar : public KToolBar {
00032     Q_OBJECT
00033 public:
00034 
00041     AlignToolBar(QMainWindow* parentWindow, const char* name);
00042 
00046     ~AlignToolBar();
00047 
00048 private:
00049 
00057     static bool hasWidgetSmallerX(const UMLWidget* widget1, const UMLWidget* widget2);
00058 
00066     static bool hasWidgetSmallerY(const UMLWidget* widget1, const UMLWidget* widget2);
00067 
00071     void loadPixmaps();
00072 
00078     int getSmallestX(const UMLWidgetList &widgetList);
00079 
00085     int getSmallestY(const UMLWidgetList &widgetList);
00086 
00092     int getBiggestX(const UMLWidgetList &widgetList);
00093 
00099     int getBiggestY(const UMLWidgetList &widgetList);
00100 
00106     int getHeightsSum(const UMLWidgetList &widgetList);
00107 
00113     int getWidthsSum(const UMLWidgetList &widgetList);
00114 
00120     void alignLeft(UMLWidgetList &widgetList);
00121 
00127     void alignRight(UMLWidgetList &widgetList);
00128 
00134     void alignTop(UMLWidgetList &widgetList);
00135 
00141     void alignBottom(UMLWidgetList &widgetList);
00142 
00148     void alignVerticalMiddle(UMLWidgetList &widgetList);
00149 
00155     void alignHorizontalMiddle(UMLWidgetList &widgetList);
00156 
00163     void alignVerticalDistribute(UMLWidgetList &widgetList);
00164 
00171     void alignHorizontalDistribute(UMLWidgetList &widgetList);
00172 
00184     template<typename Compare>
00185     void sortWidgetList(UMLWidgetList &widgetList, Compare comp);
00186 
00190     enum AlignAction
00191     {
00192         alac_align_left = 0,
00193         alac_align_right,
00194         alac_align_top,
00195         alac_align_bottom,
00196         alac_align_vertical_middle,
00197         alac_align_horizontal_middle,
00198         alac_align_vertical_distribute,
00199         alac_align_horizontal_distribute,
00200         alac_none
00201     };
00202 
00206     static const unsigned nrAlignButtons = (unsigned) alac_none -
00207                                            (unsigned) alac_align_left;
00208 
00212     QPixmap m_Pixmaps[nrAlignButtons];
00213 
00214 private slots:
00215 
00221     void slotButtonChanged(int btn);
00222 };
00223 
00224 #endif
KDE Logo
This file is part of the documentation for umbrello Version 3.1.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Jun 26 08:07:54 2007 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003