]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormInset.C
Bugfixes: checkboxes to radiobuttons (from J�rgen S) and remove a little
[lyx.git] / src / frontends / xforms / FormInset.C
index 2823d1645913584c63ac1b86377d6b22c178f23d..3f0c6676f5b8457d9c316ea5fc9512c069901a72 100644 (file)
@@ -1,10 +1,9 @@
-// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  *
  *           LyX, The Document Processor
  *
- *           Copyright 2000 The LyX Team.
+ *           Copyright 2000-2001 The LyX Team.
  *
  * ======================================================
  */
 #pragma implementation
 #endif
 
-
 #include "Dialogs.h"
 #include "LyXView.h"
 #include "FormInset.h"
+#include "xformsBC.h"
+
+using SigC::slot;
 
-FormInset::FormInset(LyXView * lv, Dialogs * d, string const & t,
-                    ButtonPolicy * bp,
-                    char const * close, char const * cancel)
-       : FormBaseBD( lv, d, t, bp, close, cancel ), ih_(0)
+FormInset::FormInset(LyXView * lv, Dialogs * d, string const & t)
+       : FormBaseBD(lv, d, t), ih_(0)
 {}
 
 
 void FormInset::connect()
 {
        u_ = d_->updateBufferDependent.
-                connect(slot(this, &FormInset::update));
+                connect(slot(this, &FormInset::updateSlot));
        h_ = d_->hideBufferDependent.
                 connect(slot(this, &FormInset::hide));
+       FormBaseDeprecated::connect();
 }
 
 
@@ -45,10 +45,17 @@ void FormInset::disconnect()
 }
 
 
-FormCommand::FormCommand( LyXView * lv, Dialogs * d, string const & t,
-                         ButtonPolicy * bp,
-                         char const * close, char const * cancel)
-       : FormInset( lv, d, t, bp, close, cancel ),
+void FormInset::updateSlot(bool switched)
+{
+       if (switched)
+               hide();
+       else
+               update();
+}
+
+
+FormCommand::FormCommand(LyXView * lv, Dialogs * d, string const & t)
+       : FormInset(lv, d, t),
          inset_(0)
 {}
 
@@ -56,12 +63,12 @@ FormCommand::FormCommand( LyXView * lv, Dialogs * d, string const & t,
 void FormCommand::disconnect()
 {
        inset_ = 0;
-       params = InsetCommandParams( string() );
+       params = InsetCommandParams(string());
        FormInset::disconnect();
 }
 
        
-void FormCommand::showInset( InsetCommand * inset )
+void FormCommand::showInset(InsetCommand * inset)
 {
        if (inset == 0) return;  // maybe we should Assert this?
 
@@ -71,18 +78,20 @@ void FormCommand::showInset( InsetCommand * inset )
 
        inset_    = inset;
        params    = inset->params();
-       ih_ = inset->hide.connect(slot(this, &FormInset::hide));
+       ih_ = inset->hideDialog.connect(slot(this, &FormCommand::hide));
        show();
 }
 
 
-void FormCommand::createInset( string const & arg )
+void FormCommand::createInset(string const & arg)
 {
        if (inset_) {
                ih_.disconnect();
                inset_ = 0;
        }
 
-       params.setFromString( arg );
+       params.setFromString(arg);
+       if ( !arg.empty() )
+               bc().valid(); // so that the user can press Ok
        show();
 }