aligntoolbar.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
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
This file is part of the documentation for umbrello Version 3.1.0.