added all files
[ffqwlibrary] / libffqw-1.0 / sources / ffabstractwidget.h
diff --git a/libffqw-1.0/sources/ffabstractwidget.h b/libffqw-1.0/sources/ffabstractwidget.h
new file mode 100644 (file)
index 0000000..cdc6dbf
--- /dev/null
@@ -0,0 +1,243 @@
+/*
+         GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+http://www.gnu.org/licenses/gpl-3.0.txt
+*/
+/**
+ * @file ffabstractwidget.h
+ * @brief contains all required declarations and basic utilities functions
+ *
+ * @author ComArch S.A.
+ * @date 2009.07.31
+ * @version 1.0
+ */
+#ifndef FFABSTRACTWIDGET_H_
+#define FFABSTRACTWIDGET_H_
+
+#include <QWidget>
+
+class FFAbstractWidget;
+typedef FFAbstractWidget FF;
+
+/**
+ * Defines default title text color for button
+ */
+const QColor FF_TITLE_COLOR = QColor(14,221,26);
+/**
+ * Defines default description text color for button
+ */
+const QColor FF_DESCRIPTION_COLOR = QColor(100,100,100);
+/**
+ * Defines default button height
+ */
+const int DEFAULT_BUTTON_HEIGHT = 65;
+/**
+ * Defines default combo button height
+ */
+const int DEFAULT_COMBO_HEIGHT = 65;
+/**
+ * Defines color for legend widget used on FFChart
+ */
+const QColor DEFAULT_LEGEND_BACKGROUND_COLOR = QColor(26,26,26);
+/**
+ * Defines opacity for legend widget used on FFChart
+ */
+const qreal DEFAULT_LEGEND_BACKGROUND_OPACITY = 0.8;
+
+/**
+ * Defines default font name for widget title
+ */
+const QString FONT_TITLE_DEF = "Arial";
+/**
+ * Defines default font name for widget description
+ */
+const QString FONT_TEXT_DEF = "Arial";
+
+/**
+ * Defines title text color for scrolling label
+ */
+const QColor COLOR_TITLE_DEF = QColor(50, 255, 50);
+/**
+ * Defines description text color for scrolling label
+ */
+const QColor COLOR_TEXT_DEF = QColor(50, 50, 255);
+/**
+ * Defines bright background color
+ */
+const QColor COLOR_BRIGHT_BACKGROUND_DEF = QColor(250, 255, 250);
+/**
+ * Defines dark background color
+ */
+const QColor COLOR_DARK_BACKGROUND_DEF = QColor(250, 255, 250);
+/**
+ * Defines bright foreground color
+ */
+const QColor COLOR_BRIGHT_FOREGROUND_DEF = QColor(250, 255, 250);
+/**
+ * Defines dark foreground color
+ */
+const QColor COLOR_DARK_FOREGROUND_DEF = QColor(250, 255, 250);
+
+/**
+ * @author ComArch S.A.
+ * @date 2009.07.30
+ * @version 1.0
+ *
+ * @brief A parent-class for all widgets included in FFQW Library
+ */
+
+class FFAbstractWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+       FFAbstractWidget(QWidget* parent = 0);
+       virtual ~FFAbstractWidget();
+
+/**
+ * describes standard FF widgets' sizes
+ */
+enum Size
+{
+       SIZE_TINY = 0x0001,
+       SIZE_SMALL = 0x0002,
+       SIZE_NORMAL = 0x0004,
+       SIZE_LARGE = 0x0008,
+       SIZE_HUGE = 0x0010
+};
+
+/**
+ * describes standard FF widgets' fonts
+ */
+enum Font
+{
+       FONT_TITLE = 0x0020, FONT_TEXT = 0x0040
+};
+
+/**
+ * describes standard FF widgets' colors
+ */
+enum Color
+{
+       COLOR_TITLE = 0x0080,
+       COLOR_TEXT = 0x0100,
+       COLOR_BRIGHT_BACKGROUND = 0x0200,
+       COLOR_DARK_BACKGROUND = 0x0400,
+       COLOR_BRIGHT_FOREGROUND = 0x0800,
+       COLOR_DARK_FOREGROUND = 0x1000
+};
+
+/**
+ * defines standard FF widgets' alignment
+ */
+enum Alignment
+{
+       ALIGNMENT_LEFT = 0x2000,
+       ALIGNMENT_RIGHT = 0x4000,
+       ALIGNMENT_CENTER = 0x8000
+};
+
+/**
+ * defines standard FF widgets' scrolling type
+ */
+enum Scroll
+{
+       SCROLL_SIDE_TO_SIDE = 0x0001
+};
+
+};
+/**
+ * Mask for checking size
+ */
+const int SIZE_MASK = FF::SIZE_TINY |
+               FF::SIZE_SMALL |
+               FF::SIZE_NORMAL |
+               FF::SIZE_LARGE |
+               FF::SIZE_HUGE;
+/**
+ * Mask for checking font type
+ */
+const int FONT_MASK = FF::FONT_TITLE | FF::FONT_TEXT;
+
+/**
+ * Mask for checking color
+ */
+const int COLOR_MASK = FF::COLOR_TITLE |
+               FF::COLOR_BRIGHT_BACKGROUND |
+               FF::COLOR_DARK_BACKGROUND |
+               FF::COLOR_BRIGHT_FOREGROUND |
+               FF::COLOR_DARK_FOREGROUND;
+/**
+ * Mask for checking alignment
+ */
+const int ALIGNMENT_MASK = FF::ALIGNMENT_LEFT | FF::ALIGNMENT_RIGHT | FF::ALIGNMENT_CENTER;
+
+#endif // FFABSTRACTWIDGET_H