summaryrefslogtreecommitdiffstats
path: root/kdeui/tests/kdialogbasetest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/tests/kdialogbasetest.cpp')
-rw-r--r--kdeui/tests/kdialogbasetest.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/kdeui/tests/kdialogbasetest.cpp b/kdeui/tests/kdialogbasetest.cpp
new file mode 100644
index 000000000..998e10d02
--- /dev/null
+++ b/kdeui/tests/kdialogbasetest.cpp
@@ -0,0 +1,77 @@
+#include <kapplication.h>
+#include <kdialogbase.h>
+
+#include <qstring.h>
+#include <qtextview.h>
+
+int main(int argc, char** argv)
+{
+ KApplication app(argc, argv, "DialogBaseTest");
+ // -----
+ QString text= // the explanation shown by the example dialog
+ "<center><h1>DialogBase Example</h1></center><hr><br>"
+ "This example shows the usage of the <i>DialogBase</i> class. "
+ "<i>DialogBase</i> is the KDE user interface class used to create "
+ "dialogs with unique layout without having to define an own dialog "
+ "style for your application. <br>"
+ "It provides three standard buttons (<b>OK</b>, <b>Apply</b>, and "
+ "<b>Cancel</b>) that are needed in most dialogs. Each one may be "
+ "hidden, enabled or disabled, and tooltips and quickhelp texts might be"
+ " added. And you do not need to bother about geometry management, this "
+ "is all done automatically.<br>"
+ "To polish your user interface even further, you might want to add "
+ "textures to the inner and the outer frame of the dialog (the frame is "
+ "created by the dialog object). This is done "
+ "using the <tt>setMainFrameTile</tt> and the <tt>setBaseFrameTile</tt> "
+ "methods. These tiles are added application-wide, so each dialog "
+ "of you application uses the same tiles. This is a tribute to a "
+ "comprehensable user interface.<br>"
+ "The class supports the creation of dialogs without being forced "
+ "to derive an own class for it, but you may derive your own class "
+ "for a better code structure.<br>"
+ "If you wrote a help chapter explaining what your dialog does, you "
+ "should add a link to it to the dialog using <tt>setHelp</tt>. You do "
+ "not have to take care about launching the help viewer, just set the "
+ "help file and topic and of course copy it to your documentation "
+ "directory during the program installation.";
+ /* Create the dialog object. DialogBase is derived from QDialog, but
+ you do not need to derive it to create a nice-looking dialog. Mostly,
+ you already have a widget class representing the core of your dialog,
+ and you only need to add a frame around it and the default buttons.
+
+ If you want to derive it, you still can, moving all code shown here
+ inside of your new class. */
+ KDialogBase dialog;
+ /* Set a help chapter. If you do not set one, the link is not shown, and the
+ upper part of the frame shrinks as much as possible. The help window "
+ "will of course only pop up if you correctly installed kdebase. */
+ // I disabled it, as khcclient did not run for me.
+ // dialog.setHelp("kdehelp/intro.html", "", "");
+ /* This QTextView is intended to be the main widget of our dialog. The
+ main widget is placed inside the dialogs frame, with the buttons below
+ it. You do not have to take care about the size handling, but it is a
+ good idea to set the main wigdets minimum size, since the sizes Qt and
+ the DialogBase class guess are sometimes ugly.
+
+ It is important that your main widget is created with the dialog object
+ as its parent! */
+ QTextView view(text, QString::null, &dialog);
+ //view.setMinimumSize(400, view.heightForWidth(400)+20);
+ view.setMinimumSize( 250, 300 );
+ dialog.setMainWidget(&view);
+ /* After finishing the setup of your main widget, the dialog needs to be
+ adjusted. It is not done automatically, since the layout of the main
+ widget may change before the dialog is shown. Additionally, setting a
+ help chapter may cause a need for adjustment since it modifies the height
+ of the upper frame. */
+ dialog.resize(dialog.minimumSize());
+ /* The dialog object is used just as any other QDialog: */
+ if(dialog.exec())
+ {
+ qDebug("Accepted.");
+ } else {
+ qDebug("Rejected.");
+ }
+ return 0;
+}
+