From 5e188707552835c6de411a7f76566b14c78238e3 Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Mon, 12 Mar 2001 12:47:07 +0000 Subject: [PATCH] Fogot to "add" these files when I committed last time. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1741 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt2/FileDialog.C | 64 ++++ src/frontends/qt2/FileDialog_private.C | 40 +++ src/frontends/qt2/FileDialog_private.h | 40 +++ src/frontends/xforms/FormExternal.C | 345 ++++++++++++++++++++ src/frontends/xforms/FormExternal.h | 99 ++++++ src/frontends/xforms/form_external.C | 110 +++++++ src/frontends/xforms/form_external.h | 35 ++ src/frontends/xforms/forms/form_external.fd | 214 ++++++++++++ 8 files changed, 947 insertions(+) create mode 100644 src/frontends/qt2/FileDialog.C create mode 100644 src/frontends/qt2/FileDialog_private.C create mode 100644 src/frontends/qt2/FileDialog_private.h create mode 100644 src/frontends/xforms/FormExternal.C create mode 100644 src/frontends/xforms/FormExternal.h create mode 100644 src/frontends/xforms/form_external.C create mode 100644 src/frontends/xforms/form_external.h create mode 100644 src/frontends/xforms/forms/form_external.fd diff --git a/src/frontends/qt2/FileDialog.C b/src/frontends/qt2/FileDialog.C new file mode 100644 index 0000000000..6c0a3d1b5b --- /dev/null +++ b/src/frontends/qt2/FileDialog.C @@ -0,0 +1,64 @@ +/** + * \file FileDialog.C + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include +#include +#include + +#include "commandtags.h" +#include "LString.h" +#include "frontends/FileDialog.h" +#include "FileDialog_private.h" +#include "debug.h" + +using std::make_pair; +using std::pair; +using std::endl; + +FileDialog::FileDialog(LyXView *lv, string const &t, kb_action s, Button b1, Button b2) + : private_(0), lv_(lv), title_(t), success_(s) +{ + // FIXME +} + + +FileDialog::~FileDialog() +{ +} + + +FileDialog::Result const FileDialog::Select(string const & path, string const & mask, string const & suggested) +{ + string filter = mask; + if (mask.empty()) + filter = _("*|All files"); + + LyXFileDialog * dlg = new LyXFileDialog(lv_, success_, path, filter, title_); + lyxerr[Debug::GUI] << "Select with path \"" << path << "\", mask \"" << filter << "\", suggested \"" << suggested << endl; + + if (!suggested.empty()) + dlg->setSelection(suggested.c_str()); + + if (success_ == LFUN_SELECT_FILE_SYNC) { + FileDialog::Result result; + lyxerr[Debug::GUI] << "Synchronous FileDialog : " << endl; + result.first = FileDialog::Chosen; + int res = dlg->exec(); + lyxerr[Debug::GUI] << "result " << res << endl; + if (res == QDialog::Accepted) + result.second = string(dlg->selectedFile().data()); + delete dlg; + return result; + } + dlg->show(); + return make_pair(FileDialog::Later, string()); +} diff --git a/src/frontends/qt2/FileDialog_private.C b/src/frontends/qt2/FileDialog_private.C new file mode 100644 index 0000000000..e63d770c88 --- /dev/null +++ b/src/frontends/qt2/FileDialog_private.C @@ -0,0 +1,40 @@ +/** + * \file FileDialog_private.C + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#include + +#include "LString.h" + +#include +#include + +#include "QtLyXView.h" +#include "debug.h" + +#include "FileDialog_private.h" + +LyXFileDialog::LyXFileDialog(LyXView * lv, kb_action a, string const & p, string const & m, string const & t) + : QFileDialog(p.c_str(), m.c_str(), qApp->mainWidget(), t.c_str(), a == LFUN_SELECT_FILE_SYNC), + lv_(lv), action_(a) +{ + setCaption(t.c_str()); +} + + +void LyXFileDialog::done(int what) +{ + lyxerr[Debug::GUI] << "Done FileDialog, value " << what << endl; + + if (action_ == LFUN_SELECT_FILE_SYNC) { + QDialog::done(what); + return; + } else if (what == QDialog::Accepted) + lv_->getLyXFunc()->Dispatch(action_, selectedFile().data()); + delete this; +} + diff --git a/src/frontends/qt2/FileDialog_private.h b/src/frontends/qt2/FileDialog_private.h new file mode 100644 index 0000000000..1353a671cc --- /dev/null +++ b/src/frontends/qt2/FileDialog_private.h @@ -0,0 +1,40 @@ +/** + * \file FileDialog_private.h + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#ifndef FILEDIALOG_PRIVATE_H +#define FILEDIALOG_PRIVATE_H + +#include + +#include + +#include "LString.h" +#include "lyxfunc.h" + +#include "frontends/FileDialog.h" + +class LyXView; + +class LyXFileDialog : public QFileDialog +{ + Q_OBJECT + +public: + LyXFileDialog(LyXView * lv, kb_action a, string const & p, string const & m, string const & t); + + friend class FileDialog; + +public slots: + void done(int); + +private: + LyXView * lv_; + int action_; +}; + +#endif // FILEDIALOG_PRIVATE_H diff --git a/src/frontends/xforms/FormExternal.C b/src/frontends/xforms/FormExternal.C new file mode 100644 index 0000000000..81b513f785 --- /dev/null +++ b/src/frontends/xforms/FormExternal.C @@ -0,0 +1,345 @@ +/** + * \file FormExternal.C + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author unknown + * \author John Levon + */ + +#include +#include + +#include FORMS_H_LOCATION + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include "debug.h" +#include "gettext.h" +#include "support/LAssert.h" +#include "lyx_gui_misc.h" +#include "Dialogs.h" +#include "LyXView.h" +#include "buffer.h" +#include "FormExternal.h" +#include "frontends/FileDialog.h" +#include "LString.h" +#include "support/filetools.h" + +using std::pair; +using std::make_pair; +using std::endl; + +FormExternal::FormExternal(LyXView * lv, Dialogs * d) + : FormBaseBD(lv, d, _("Edit external file"), new OkCancelReadOnlyPolicy), + inset_(0), ih_(0), dialog_(0) +{ + d->showExternal.connect(slot(this, &FormExternal::showInset)); +} + + +FormExternal::~FormExternal() +{ + delete dialog_; +} + + +extern "C" void ExternalTemplateCB(FL_OBJECT * ob, long data) +{ + FormExternal::templateCB(ob, data); +} + + +extern "C" void ExternalBrowseCB(FL_OBJECT * ob, long data) +{ + FormExternal::browseCB(ob, data); +} + + +extern "C" void ExternalEditCB(FL_OBJECT * ob, long data) +{ + FormExternal::editCB(ob, data); +} + + +extern "C" void ExternalViewCB(FL_OBJECT * ob, long data) +{ + FormExternal::viewCB(ob, data); +} + + +extern "C" void ExternalUpdateCB(FL_OBJECT * ob, long data) +{ + FormExternal::updateCB(ob, data); +} + + +FL_FORM * FormExternal::form() const +{ + if (dialog_) + return dialog_->form; + return 0; +} + + +void FormExternal::connect() +{ + u_ = d_->updateBufferDependent. + connect(slot(this, &FormExternal::updateSlot)); + h_ = d_->hideBufferDependent. + connect(slot(this, &FormExternal::hide)); + FormBase::connect(); +} + + +void FormExternal::disconnect() +{ + inset_ = 0; + ih_.disconnect(); + FormBaseBD::disconnect(); +} + + +void FormExternal::updateSlot(bool switched) +{ + if (switched) + hide(); + else + update(); +} + + +void FormExternal::showInset(InsetExternal * inset) +{ + Assert(inset); + + // If connected to another inset, disconnect from it. + if (inset_) + ih_.disconnect(); + + inset_ = inset; + params_ = inset_->params(); + + ih_ = inset->hideDialog.connect(slot(this, &FormExternal::hide)); + show(); +} + + +void FormExternal::build() +{ + dialog_ = build_external(); + + fl_addto_choice(dialog_->choice_template, + getTemplatesComboString().c_str()); + + // Workaround dumb xforms sizing bug + minw_ = form()->w; + minh_ = form()->h; + + bc_.setOK(dialog_->button_ok); + bc_.setCancel(dialog_->button_cancel); + bc_.refresh(); + + bc_.addReadOnly(dialog_->input_filename); + bc_.addReadOnly(dialog_->button_filenamebrowse); + bc_.addReadOnly(dialog_->input_parameters); +} + + +string const FormExternal::getTemplatesComboString() const +{ + string result; + bool first = true; + ExternalTemplateManager::Templates::const_iterator i1, i2; + i1 = ExternalTemplateManager::get().getTemplates().begin(); + i2 = ExternalTemplateManager::get().getTemplates().end(); + for (; i1 != i2; ++i1) { + if (!first) + result += "|"; + else + first = false; + + result += (*i1).second.lyxName; + } + return result; +} + + +int FormExternal::getTemplateComboNumber(string const & name) const +{ + int i = 1; + ExternalTemplateManager::Templates::const_iterator i1, i2; + i1 = ExternalTemplateManager::get().getTemplates().begin(); + i2 = ExternalTemplateManager::get().getTemplates().end(); + for (; i1 != i2; ++i1) { + if (i1->second.lyxName == name) + return i; + ++i; + } + // we can get here if a LyX document has a template not installed + // on this machine. + return 0; +} + + +ExternalTemplate FormExternal::getTemplate(int i) const +{ + ExternalTemplateManager::Templates::const_iterator i1; + i1 = ExternalTemplateManager::get().getTemplates().begin(); + for (int n = 1; n < i; ++n) + ++i1; + + return (*i1).second; +} + + +void FormExternal::update() +{ + fl_set_input(dialog_->input_filename, params_.filename.c_str()); + fl_set_input(dialog_->input_parameters, params_.parameters.c_str()); + + fl_set_choice(dialog_->choice_template, getTemplateComboNumber(params_.templ.lyxName)); + + updateComboChange(); + + bc_.valid(); +} + + +void FormExternal::updateComboChange() +{ + // Update the help text + fl_clear_browser(dialog_->browser_helptext); + fl_addto_browser(dialog_->browser_helptext, params_.templ.helpText.c_str()); + fl_set_browser_topline(dialog_->browser_helptext, 0); + + if (params_.templ.automaticProduction) { + fl_deactivate_object(dialog_->button_update); + fl_set_object_lcol(dialog_->button_update, FL_INACTIVE); + } else { + fl_activate_object(dialog_->button_update); + fl_set_object_lcol(dialog_->button_update, FL_BLACK); + } +} + + +bool FormExternal::input(FL_OBJECT *, long) +{ + // FIXME: anything to do here ? + return true; +} + + +void FormExternal::apply() +{ + Assert(inset_); + + if (lv_->buffer()->isReadonly()) + return; + + params_.filename = fl_get_input(dialog_->input_filename); + params_.parameters = fl_get_input(dialog_->input_parameters); + params_.templ = getTemplate(fl_get_choice(dialog_->choice_template)); + + inset_->setFromParams(params_); + lv_->view()->updateInset(inset_, true); +} + + +void FormExternal::templateCB(FL_OBJECT * ob, long) +{ + FormExternal * form = static_cast(ob->form->u_vdata); + + // set to the chosen template + form->params_.templ = form->getTemplate(fl_get_choice(form->dialog_->choice_template)); + + form->updateComboChange(); +} + + +void FormExternal::browseCB(FL_OBJECT * ob, long) +{ + FormExternal * form = static_cast(ob->form->u_vdata); + + static string current_path; + static int once = 0; + + string p = fl_get_input(form->dialog_->input_filename); + string buf = MakeAbsPath(form->lv_->buffer()->fileName()); + string buf2 = OnlyPath(buf); + + if (!p.empty()) { + buf = MakeAbsPath(p, buf2); + buf = OnlyPath(buf); + } else { + buf = OnlyPath(form->lv_->buffer()->fileName()); + } + + FileDialog fileDlg(form->lv_, _("Select external file"), + LFUN_SELECT_FILE_SYNC, + make_pair(string(_("Document")), string(buf))); + + /// Determine the template file extension + ExternalTemplate const & et = form->params_.templ; + + string regexp = et.fileRegExp; + if (regexp.empty()) + regexp = "*"; + + // FIXME: a temporary hack until the FileDialog interface is updated + regexp += "|"; + + while (1) { + string const path = (once) ? current_path : buf; + FileDialog::Result result = fileDlg.Select(path, regexp, fl_get_input(form->dialog_->input_filename)); + + if (result.second.empty()) + return; + + string p = result.second; + + buf = MakeRelPath(p, buf2); + current_path = OnlyPath(p); + once = 1; + + if (contains(p, "#") || contains(p, "~") || contains(p, "$") + || contains(p, "%")) { + WriteAlert(_("Filename can't contain any " + "of these characters:"), + // xgettext:no-c-format + _("'#', '~', '$' or '%'.")); + } else + break; + } + + fl_set_input(form->dialog_->input_filename, buf.c_str()); +} + + +void FormExternal::editCB(FL_OBJECT * ob, long) +{ + FormExternal * form = static_cast(ob->form->u_vdata); + + form->apply(); + form->inset_->editExternal(); +} + + +void FormExternal::viewCB(FL_OBJECT * ob, long) +{ + FormExternal * form = static_cast(ob->form->u_vdata); + + form->apply(); + form->inset_->viewExternal(); +} + + +void FormExternal::updateCB(FL_OBJECT * ob, long) +{ + FormExternal * form = static_cast(ob->form->u_vdata); + + form->apply(); + form->inset_->updateExternal(); +} diff --git a/src/frontends/xforms/FormExternal.h b/src/frontends/xforms/FormExternal.h new file mode 100644 index 0000000000..b6f95f7103 --- /dev/null +++ b/src/frontends/xforms/FormExternal.h @@ -0,0 +1,99 @@ +/** + * \file FormExternal.h + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author unknown + * \author John Levon + */ + +#ifndef FORMEXTERNAL_H +#define FORMEXTERNAL_H + +#include "FormBase.h" +#include "insets/insetexternal.h" + +#include "form_external.h" + +#ifdef __GNUG__ +#pragma interface +#endif + +/// The class for editing External insets via a dialog +class FormExternal : public FormBaseBD { +public: + FormExternal(LyXView *, Dialogs *); + + ~FormExternal(); + + /// Connect signals. Also perform any necessary initialisation. + virtual void connect(); + + /// Disconnect signals. Also perform any necessary housekeeping. + virtual void disconnect(); + + /// Slot launching dialog to an existing inset + void showInset(InsetExternal *); + + /// bool indicates if a buffer switch took place + virtual void updateSlot(bool); + + /// Callback function for the template drop-down + static void templateCB(FL_OBJECT *, long); + + /// Callback function for the browse button + static void browseCB(FL_OBJECT *, long); + + /// Callback function for the edit button + static void editCB(FL_OBJECT *, long); + + /// Callback function for the view button + static void viewCB(FL_OBJECT *, long); + + /// Callback function for the update production button + static void updateCB(FL_OBJECT *, long); + + /// Pointer to the actual instantiation of the xform's form + virtual FL_FORM * form() const; + +private: + /// calculate the string to set the combo box + string const getTemplatesComboString() const; + + /// get the position in the combo for a given name + int getTemplateComboNumber(string const & name) const; + + /// get a template given its combo position + ExternalTemplate getTemplate(int i) const; + + /// change widgets on change of chosen template + void updateComboChange(); + + /// build the dialog + void build(); + + /// the inset we're modifying + InsetExternal * inset_; + + /// the parameters + InsetExternal::InsetExternalParams params_; + + /// update the dialog + void update(); + + /// apply changes + void apply(); + + bool input(FL_OBJECT * obj, long data); + + /// inset::hide connection. + Connection ih_; + + /// build the dialog + FD_form_external * build_external(); + + /// the dialog implementation + FD_form_external * dialog_; +}; + +#endif // FORMEXTERNAL_H diff --git a/src/frontends/xforms/form_external.C b/src/frontends/xforms/form_external.C new file mode 100644 index 0000000000..f5d4aed97e --- /dev/null +++ b/src/frontends/xforms/form_external.C @@ -0,0 +1,110 @@ +// File modified by fdfix.sh for use by lyx (with xforms >= 0.88) and gettext +#include +#include "lyx_gui_misc.h" +#include "gettext.h" + +/* Form definition file generated with fdesign. */ + +#include FORMS_H_LOCATION +#include +#include "form_external.h" +#include "FormExternal.h" + +FD_form_external::~FD_form_external() +{ + if ( form->visible ) fl_hide_form( form ); + fl_free_form( form ); +} + + +FD_form_external * FormExternal::build_external() +{ + FL_OBJECT *obj; + FD_form_external *fdui = new FD_form_external; + + fdui->form = fl_bgn_form(FL_NO_BOX, 560, 310); + fdui->form->u_vdata = this; + obj = fl_add_box(FL_UP_BOX, 0, 0, 560, 310, ""); + { + char const * const dummy = N_("Template|#t"); + fdui->choice_template = obj = fl_add_choice(FL_NORMAL_CHOICE, 130, 10, 300, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_boxtype(obj, FL_FRAME_BOX); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_NorthWest, FL_NorthEast); + fl_set_object_callback(obj, ExternalTemplateCB, 0); + { + char const * const dummy = N_("File|#F"); + fdui->input_filename = obj = fl_add_input(FL_NORMAL_INPUT, 130, 190, 190, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_SouthWest, FL_SouthEast); + fl_set_object_callback(obj, C_FormBaseInputCB, 0); + { + char const * const dummy = N_("Browse...|#B"); + fdui->button_filenamebrowse = obj = fl_add_button(FL_NORMAL_BUTTON, 330, 190, 100, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); + fl_set_object_callback(obj, ExternalBrowseCB, 0); + { + char const * const dummy = N_("Parameters|#P"); + fdui->input_parameters = obj = fl_add_input(FL_NORMAL_INPUT, 130, 230, 300, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_SouthWest, FL_SouthEast); + { + char const * const dummy = N_("Edit file|#E"); + fdui->button_edit = obj = fl_add_button(FL_NORMAL_BUTTON, 435, 50, 110, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_color(obj, FL_COL1, FL_BLACK); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_NorthEast, FL_NorthEast); + fl_set_object_callback(obj, ExternalEditCB, 0); + { + char const * const dummy = N_("View result|#V"); + fdui->button_view = obj = fl_add_button(FL_NORMAL_BUTTON, 435, 90, 110, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_color(obj, FL_COL1, FL_BLACK); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_NorthEast, FL_NorthEast); + fl_set_object_callback(obj, ExternalViewCB, 0); + { + char const * const dummy = N_("Update result|#U"); + fdui->button_update = obj = fl_add_button(FL_NORMAL_BUTTON, 435, 130, 110, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_color(obj, FL_COL1, FL_BLACK); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_NorthEast, FL_NorthEast); + fl_set_object_callback(obj, ExternalUpdateCB, 0); + fdui->button_ok = obj = fl_add_button(FL_RETURN_BUTTON, 315, 270, 110, 30, _("OK")); + fl_set_object_color(obj, FL_COL1, FL_BLACK); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); + fl_set_object_callback(obj, C_FormBaseOKCB, 0); + { + char const * const dummy = N_("Cancel|#C^["); + fdui->button_cancel = obj = fl_add_button(FL_NORMAL_BUTTON, 435, 270, 110, 30, idex(_(dummy))); + fl_set_button_shortcut(obj, scex(_(dummy)), 1); + } + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast); + fl_set_object_callback(obj, C_FormBaseCancelCB, 0); + fdui->browser_helptext = obj = fl_add_browser(FL_NORMAL_BROWSER, 130, 50, 300, 130, ""); + fl_set_object_lalign(obj, FL_ALIGN_TOP); + fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast); + fl_end_form(); + + fdui->form->fdui = fdui; + + return fdui; +} +/*---------------------------------------*/ + diff --git a/src/frontends/xforms/form_external.h b/src/frontends/xforms/form_external.h new file mode 100644 index 0000000000..2802df3a59 --- /dev/null +++ b/src/frontends/xforms/form_external.h @@ -0,0 +1,35 @@ +// File modified by fdfix.sh for use by lyx (with xforms >= 0.88) and gettext +/** Header file generated with fdesign **/ + +#ifndef FD_form_external_h_ +#define FD_form_external_h_ + +/** Callbacks, globals and object handlers **/ +extern "C" void ExternalTemplateCB(FL_OBJECT *, long); +extern "C" void C_FormBaseInputCB(FL_OBJECT *, long); +extern "C" void ExternalBrowseCB(FL_OBJECT *, long); +extern "C" void ExternalEditCB(FL_OBJECT *, long); +extern "C" void ExternalViewCB(FL_OBJECT *, long); +extern "C" void ExternalUpdateCB(FL_OBJECT *, long); +extern "C" void C_FormBaseOKCB(FL_OBJECT *, long); +extern "C" void C_FormBaseCancelCB(FL_OBJECT *, long); + + +/**** Forms and Objects ****/ +struct FD_form_external { + ~FD_form_external(); + + FL_FORM *form; + FL_OBJECT *choice_template; + FL_OBJECT *input_filename; + FL_OBJECT *button_filenamebrowse; + FL_OBJECT *input_parameters; + FL_OBJECT *button_edit; + FL_OBJECT *button_view; + FL_OBJECT *button_update; + FL_OBJECT *button_ok; + FL_OBJECT *button_cancel; + FL_OBJECT *browser_helptext; +}; + +#endif /* FD_form_external_h_ */ diff --git a/src/frontends/xforms/forms/form_external.fd b/src/frontends/xforms/forms/form_external.fd new file mode 100644 index 0000000000..5cea763567 --- /dev/null +++ b/src/frontends/xforms/forms/form_external.fd @@ -0,0 +1,214 @@ +Magic: 13000 + +Internal Form Definition File + (do not change) + +Number of forms: 1 +Unit of measure: FL_COORD_PIXEL + +=============== FORM =============== +Name: form_external +Width: 560 +Height: 310 +Number of Objects: 11 + +-------------------- +class: FL_BOX +type: UP_BOX +box: 0 0 560 310 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_CHOICE +type: NORMAL_CHOICE +box: 130 10 300 30 +boxtype: FL_FRAME_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Template|#t +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NorthWest FL_NorthEast +name: choice_template +callback: ExternalTemplateCB +argument: 0 + +-------------------- +class: FL_INPUT +type: NORMAL_INPUT +box: 130 190 190 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: File|#F +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_SouthWest FL_SouthEast +name: input_filename +callback: C_FormBaseInputCB +argument: 0 + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 330 190 100 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Browse...|#B +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_SouthEast FL_SouthEast +name: button_filenamebrowse +callback: ExternalBrowseCB +argument: 0 + +-------------------- +class: FL_INPUT +type: NORMAL_INPUT +box: 130 230 300 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Parameters|#P +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_SouthWest FL_SouthEast +name: input_parameters +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 435 50 110 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Edit file|#E +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NorthEast FL_NorthEast +name: button_edit +callback: ExternalEditCB +argument: 0 + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 435 90 110 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: View result|#V +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NorthEast FL_NorthEast +name: button_view +callback: ExternalViewCB +argument: 0 + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 435 130 110 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Update result|#U +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NorthEast FL_NorthEast +name: button_update +callback: ExternalUpdateCB +argument: 0 + +-------------------- +class: FL_BUTTON +type: RETURN_BUTTON +box: 315 270 110 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: OK +shortcut: ^M +resize: FL_RESIZE_ALL +gravity: FL_SouthEast FL_SouthEast +name: button_ok +callback: C_FormBaseOKCB +argument: 0 + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 435 270 110 30 +boxtype: FL_UP_BOX +colors: FL_COL1 FL_COL1 +alignment: FL_ALIGN_CENTER +style: FL_NORMAL_STYLE +size: FL_NORMAL_SIZE +lcol: FL_BLACK +label: Cancel|#C^[ +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_SouthEast FL_SouthEast +name: button_cancel +callback: C_FormBaseCancelCB +argument: 0 + +-------------------- +class: FL_BROWSER +type: NORMAL_BROWSER +box: 130 50 300 130 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_TOP +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NorthWest FL_SouthEast +name: browser_helptext +callback: +argument: + +============================== +create_the_forms -- 2.39.2