]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormCopyright.C
More pref work from Angus
[lyx.git] / src / frontends / xforms / FormCopyright.C
index 5a8ecdc14d1a1c407699b1117698936f9d4f5de4..0cef3ce770b7d69240c3aeeea52a5218fdb4895b 100644 (file)
 #pragma implementation
 #endif
 
-#include "xform_macros.h"
-#include "form_copyright.h"
-#include "FormCopyright.h"
 #include "Dialogs.h"
 #include "LyXView.h"
-#include "lyx_gui_misc.h"
-#include "gettext.h"
-
-C_RETURNCB(FormCopyright, WMHideCB)
-C_GENERICCB(FormCopyright, OKCB)
+#include "form_copyright.h"
+#include "FormCopyright.h"
 
-FormCopyright::FormCopyright(LyXView * lv, Dialogs * d)
-       : dialog_(0), lv_(lv), d_(d), h_(0)
+FormCopyright::FormCopyright( LyXView * lv, Dialogs * d        )
+       : FormBaseBI( lv, d, _("Copyright and Warranty") ),
+         dialog_(0)
 {
        // let the dialog be shown
        // This is a permanent connection so we won't bother
@@ -33,76 +28,22 @@ FormCopyright::FormCopyright(LyXView * lv, Dialogs * d)
 
 FormCopyright::~FormCopyright()
 {
-       free();
-}
-
-
-void FormCopyright::build()
-{
-  dialog_ = build_copyright();
+       delete dialog_;
 }
 
 
-void FormCopyright::show()
+FL_FORM * FormCopyright::form() const
 {
-       if (!dialog_) {
-               build();
-               fl_set_form_atclose(dialog_->form_copyright,
-                                   C_FormCopyrightWMHideCB, 0);
-       }
-
-       if (dialog_->form_copyright->visible) {
-               fl_raise_form(dialog_->form_copyright);
-       } else {
-               fl_show_form(dialog_->form_copyright,
-                            FL_PLACE_MOUSE,
-                            FL_FULLBORDER,
-                            _("Copyright and Warranty"));
-               h_ = d_->hideAll.connect(slot(this, &FormCopyright::hide));
-       }
+       if ( dialog_ ) return dialog_->form;
+       return 0;
 }
 
 
-void FormCopyright::hide()
-{
-       if (dialog_
-           && dialog_->form_copyright
-           && dialog_->form_copyright->visible) {
-               fl_hide_form(dialog_->form_copyright);
-               h_.disconnect();
-       }
-       free();
-}
-
-
-void FormCopyright::free()
-{
-       // we don't need to delete h here because
-       // hide() does that after disconnecting.
-       if (dialog_) {
-               if (dialog_->form_copyright
-                   && dialog_->form_copyright->visible) {
-                       hide();
-               }
-               fl_free_form(dialog_->form_copyright);
-               delete dialog_;
-               dialog_ = 0;
-       }
-}
-
-
-int FormCopyright::WMHideCB(FL_FORM * form, void *)
+void FormCopyright::build()
 {
-       // Ensure that the signal h is disconnected even if the
-       // window manager is used to close the dialog.
-       FormCopyright * pre = static_cast<FormCopyright*>(form->u_vdata);
-       pre->hide();
-       return FL_CANCEL;
-}
+       dialog_ = build_copyright();
 
-
-void FormCopyright::OKCB(FL_OBJECT * ob, long)
-{
-       FormCopyright * pre = static_cast<FormCopyright*>(ob->form->u_vdata);
-       pre->hide();
+       // Workaround dumb xforms sizing bug
+       minw_ = form()->w;
+       minh_ = form()->h;
 }