#include "qt2BC.h"
#include "support/LAssert.h"
+#include <stdio.h>
+
FormBase::FormBase(ControlBase & c, string const & t)
: ViewBC<qt2BC>(c), title_(t)
void FormBase::show()
{
- if (!form()) {
+ fprintf( stderr, "FormBase::show() 1\n" );
+ if (!form()) {
+ fprintf( stderr, "FormBase::show() 2\n" );
build();
+ fprintf( stderr, "FormBase::show() 3\n" );
}
+ fprintf( stderr, "FormBase::show() 4\n" );
update(); // make sure its up-to-date
+ fprintf( stderr, "FormBase::show() 5\n" );
if (form()->isVisible()) {
+ fprintf( stderr, "FormBase::show() 6\n" );
form()->raise();
+ fprintf( stderr, "FormBase::show() 7\n" );
} else {
+ fprintf( stderr, "FormBase::show() 8\n" );
form()->setCaption( title_.c_str() );
+ fprintf( stderr, "FormBase::show() 9\n" );
form()->show();
+ fprintf( stderr, "FormBase::show() 10\n" );
}
}
}
+// PENDING(kalle) Handle this with QValidator?
// void FormBase::InputCB(FL_OBJECT * ob, long data)
// {
// bc().input(input(ob, data));
// }
-// ButtonPolicy::SMInput FormBase::input(FL_OBJECT *, long)
-// {
-// return ButtonPolicy::SMI_VALID;
-// }
-
+ButtonPolicy::SMInput FormBase::input(QWidget*, long)
+{
+ return ButtonPolicy::SMI_VALID;
+}
-namespace {
-// FormBase * GetForm(QWidget * ob)
-// {
-// Assert(ob && ob->form && ob->form->u_vdata);
-// FormBase * pre = static_cast<FormBase *>(ob->form->u_vdata);
-// return pre;
-// }
-} // namespace anon
+void FormBase::slotWMHide()
+{
+ CancelButton();
+}
-// extern "C" int C_FormBaseWMHideCB(FL_FORM * form, void *)
-// {
-// // Close the dialog cleanly, even if the WM is used to do so.
-// Assert(form && form->u_vdata);
-// FormBase * pre = static_cast<FormBase *>(form->u_vdata);
-// pre->CancelButton();
-// return FL_CANCEL;
-// }
-
-// extern "C" void C_FormBaseApplyCB(FL_OBJECT * ob, long)
-// {
-// GetForm(ob)->ApplyButton();
-// }
+void FormBase::slotApply()
+{
+ ApplyButton();
+}
-// extern "C" void C_FormBaseOKCB(FL_OBJECT * ob, long)
-// {
-// GetForm(ob)->OKButton();
-// }
+void FormBase::slotOK()
+{
+ OKButton();
+}
-// extern "C" void C_FormBaseCancelCB(FL_OBJECT * ob, long)
-// {
-// FormBase * form = GetForm(ob);
-// form->CancelButton();
-// }
+void FormBase::slotCancel()
+{
+ CancelButton();
+}
-// extern "C" void C_FormBaseRestoreCB(FL_OBJECT * ob, long)
-// {
-// GetForm(ob)->RestoreButton();
-// }
+void FormBase::slotRestore()
+{
+ RestoreButton();
+}
+// PENDING(kalle) How to handle this?
// extern "C" void C_FormBaseInputCB(FL_OBJECT * ob, long d)
// {
// GetForm(ob)->InputCB(ob, d);
class QDialog;
+#include <qfont.h>
+#include <qobject.h>
+
#ifdef __GNUG__
#pragma interface
#endif
/** This class is an Qt2 GUI base class.
*/
-class FormBase : public ViewBC<qt2BC>
+class FormBase : public QObject, public ViewBC<qt2BC>
{
+ Q_OBJECT
public:
///
FormBase(ControlBase &, string const &);
/// Create the dialog if necessary, update it and display it.
void show();
+protected slots:
+ // dialog closed from WM
+ void slotWMHide();
+
+ // Apply button clicked
+ void slotApply();
+
+ // OK button clicked
+ void slotOK();
+
+ // Cancel button clicked
+ void slotCancel();
+
+ // Restore button clicked
+ void slotRestore();
+
private:
/// Pointer to the actual instantiation of xform's form
virtual QDialog* form() const = 0;
-// /** Filter the inputs on callback from xforms
-// Return true if inputs are valid. */
-// virtual ButtonPolicy::SMInput input(FL_OBJECT *, long);
+ /** Filter the inputs on callback from xforms
+ Return true if inputs are valid. */
+ virtual ButtonPolicy::SMInput input(QWidget*, long);
private:
/// dialog title, displayed by WM.
{
// PENDING(kalle) Parent???
dialog_.reset( new FormCopyrightDialogImpl() );
-
+ connect( dialog_.get()->closePB, SIGNAL( clicked() ),
+ this, SLOT( slotCancel() ) );
+
dialog_->copyrightLA->setText( controller().getCopyright().c_str() );
dialog_->licenseLA->setText( controller().getLicence().c_str() );
dialog_->disclaimerLA->setText( controller().getDisclaimer().c_str() );
// Manage the cancel/close button
- bc().setCancel(dialog_->okPB);
+ bc().setCancel(dialog_->closePB);
bc().refresh();
}