#endif
-#include "gettext.h"
#include "Dialogs.h"
#include "FormIndex.h"
#include "LyXView.h"
}
-void FormIndex::build()
+FL_FORM * FormIndex::form() const
{
- dialog_ = build_index();
+ if ( dialog_ ) return dialog_->form;
+ return 0;
}
-FL_FORM * const FormIndex::form() const
+void FormIndex::connect()
{
- if( dialog_ && dialog_->form_index )
- return dialog_->form_index;
- else
- return 0;
+ fl_set_form_maxsize( form(), 2*minw_, minh_ );
+ FormCommand::connect();
}
+
-
-void FormIndex::update()
+void FormIndex::build()
{
- static int ow = -1, oh;
-
- if (ow < 0) {
- ow = dialog_->form_index->w;
- oh = dialog_->form_index->h;
+ dialog_ = build_index();
- fl_set_form_minsize(dialog_->form_index, ow, oh);
- fl_set_form_maxsize(dialog_->form_index, 2*ow, oh);
- }
+#ifdef WITH_WARNINGS
+#warning use the buttoncontroller
+#endif
+ // Workaround dumb xforms sizing bug
+ minw_ = form()->w;
+ minh_ = form()->h;
+}
- fl_freeze_form( dialog_->form_index );
+void FormIndex::update()
+{
fl_set_input(dialog_->key, params.getContents().c_str());
- if( lv_->buffer()->isReadonly() ) {
+ if ( lv_->buffer()->isReadonly() ) {
fl_deactivate_object( dialog_->key );
fl_deactivate_object( dialog_->ok );
fl_set_object_lcol( dialog_->ok, FL_INACTIVE );
fl_activate_object( dialog_->ok );
fl_set_object_lcol( dialog_->ok, FL_BLACK );
}
-
- fl_unfreeze_form( dialog_->form_index );
}
void FormIndex::apply()
{
- if( lv_->buffer()->isReadonly() ) return;
+ if (lv_->buffer()->isReadonly()) return;
- params.setContents( fl_get_input(dialog_->key) );
+ params.setContents(fl_get_input(dialog_->key));
- if( inset_ != 0 )
- {
+ if (inset_ != 0) {
// Only update if contents have changed
- if( params.getContents() != inset_->getContents() ) {
- inset_->setParams( params );
- lv_->view()->updateInset( inset_, true );
+ if (params != inset_->params()) {
+ inset_->setParams(params);
+ lv_->view()->updateInset(inset_, true);
}
} else {
- lv_->getLyXFunc()->Dispatch( LFUN_INDEX_INSERT,
- params.getAsString().c_str() );
+ lv_->getLyXFunc()->Dispatch(LFUN_INDEX_INSERT,
+ params.getAsString());
}
}