mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 22:06:15 +00:00
patch from Angus
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@944 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d4767f7915
commit
db47e6bc77
47
ChangeLog
47
ChangeLog
@ -1,3 +1,50 @@
|
|||||||
|
2000-08-01 Angus Leeming <a.leeming@ic.ac.uk>
|
||||||
|
|
||||||
|
* src/insets/insetcommand.h (hide): new SigC::Signal0
|
||||||
|
(d-tor) new virtual destructor emits hide signal
|
||||||
|
|
||||||
|
* src/insets/insetcite.[Ch] (hide, d-tor, EditMessage): removed
|
||||||
|
* src/insets/inseturl.[Ch] (hide, d-tor): ditto
|
||||||
|
|
||||||
|
* src/insets/insettoc.[Ch]: one inset now deals with TOC, LOA,
|
||||||
|
LOF and LOT. Inset is now GUI-independent
|
||||||
|
|
||||||
|
* src/insets/insetloa.[Ch]: redundant
|
||||||
|
* src/insets/insetlof.[Ch]: ditto
|
||||||
|
* src/insets/insetlot.[Ch]: ditto
|
||||||
|
|
||||||
|
* src/frontends/xforms/forms/form_url.fd: tweaked!
|
||||||
|
* src/frontends/xforms/forms/form_citation.fd: ditto
|
||||||
|
|
||||||
|
* src/frontends/xforms/FormCommand.[Ch]: new base class to those
|
||||||
|
dialogs dealing with InsetCommand insets
|
||||||
|
|
||||||
|
* src/frontends/xforms/FormCitation.[Ch]: now makes use of
|
||||||
|
FormCommand base class
|
||||||
|
* src/frontends/xforms/FormUrl.[Ch]: ditto
|
||||||
|
|
||||||
|
* src/frontends/xforms/forms/form_toc.fd: Xforms implementation
|
||||||
|
of the TOC dialog
|
||||||
|
* src/frontends/xforms/FormToc.[Ch]: ditto
|
||||||
|
|
||||||
|
* src/frontends/Dialogs.h (showCitation, showTOC, showUrl): all
|
||||||
|
passed a generic InsetCommand pointer
|
||||||
|
* src/frontends/xforms/Dialogs.C (c-tor): create instance of FormToc
|
||||||
|
|
||||||
|
* src/lyxfunc.C (Dispatch) : modified to accomodate new FormToc class
|
||||||
|
and modified InsetTOC class
|
||||||
|
* src/buffer.C: ditto
|
||||||
|
|
||||||
|
* forms/lyx.fd: strip out old FD_form_toc code
|
||||||
|
* src/lyx_gui_misc.C: ditto
|
||||||
|
* src/lyx_gui.C: ditto
|
||||||
|
* src/lyx_cb.C: ditto
|
||||||
|
* src/lyx.[Ch]: ditto
|
||||||
|
|
||||||
|
2000-08-01 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||||
|
|
||||||
|
* src/support/utility.hpp: tr -d '\r'
|
||||||
|
|
||||||
2000-08-01 Juergen Vigna <jug@sad.it>
|
2000-08-01 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
* src/insets/insettabular.h: removed initFeatures() as it's not needed.
|
* src/insets/insettabular.h: removed initFeatures() as it's not needed.
|
||||||
|
98
forms/lyx.fd
98
forms/lyx.fd
@ -3,7 +3,7 @@ Magic: 13000
|
|||||||
Internal Form Definition File
|
Internal Form Definition File
|
||||||
(do not change)
|
(do not change)
|
||||||
|
|
||||||
Number of forms: 6
|
Number of forms: 5
|
||||||
Unit of measure: FL_COORD_PIXEL
|
Unit of measure: FL_COORD_PIXEL
|
||||||
|
|
||||||
=============== FORM ===============
|
=============== FORM ===============
|
||||||
@ -402,102 +402,6 @@ name:
|
|||||||
callback: ScreenCancelCB
|
callback: ScreenCancelCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
=============== FORM ===============
|
|
||||||
Name: form_toc
|
|
||||||
Width: 420
|
|
||||||
Height: 340
|
|
||||||
Number of Objects: 5
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
class: FL_BOX
|
|
||||||
type: UP_BOX
|
|
||||||
box: 0 0 420 340
|
|
||||||
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_BROWSER
|
|
||||||
type: HOLD_BROWSER
|
|
||||||
box: 10 10 400 280
|
|
||||||
boxtype: FL_DOWN_BOX
|
|
||||||
colors: FL_COL1 FL_YELLOW
|
|
||||||
alignment: FL_ALIGN_BOTTOM
|
|
||||||
style: FL_NORMAL_STYLE
|
|
||||||
size: FL_DEFAULT_SIZE
|
|
||||||
lcol: FL_BLACK
|
|
||||||
label:
|
|
||||||
shortcut:
|
|
||||||
resize: FL_RESIZE_ALL
|
|
||||||
gravity: FL_NorthWest FL_SouthEast
|
|
||||||
name: browser_toc
|
|
||||||
callback: TocSelectCB
|
|
||||||
argument: 0
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
class: FL_BUTTON
|
|
||||||
type: RETURN_BUTTON
|
|
||||||
box: 310 300 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: Close
|
|
||||||
shortcut: ^M
|
|
||||||
resize: FL_RESIZE_NONE
|
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
|
||||||
name:
|
|
||||||
callback: TocCancelCB
|
|
||||||
argument: 0
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
class: FL_BUTTON
|
|
||||||
type: NORMAL_BUTTON
|
|
||||||
box: 200 300 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: Update|Uu#u
|
|
||||||
shortcut:
|
|
||||||
resize: FL_RESIZE_NONE
|
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
|
||||||
name:
|
|
||||||
callback: TocUpdateCB
|
|
||||||
argument: 0
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
class: FL_CHOICE
|
|
||||||
type: NORMAL_CHOICE
|
|
||||||
box: 60 300 130 30
|
|
||||||
boxtype: FL_FRAME_BOX
|
|
||||||
colors: FL_COL1 FL_BLACK
|
|
||||||
alignment: FL_ALIGN_LEFT
|
|
||||||
style: FL_NORMAL_STYLE
|
|
||||||
size: FL_DEFAULT_SIZE
|
|
||||||
lcol: FL_BLACK
|
|
||||||
label: Type|Tt#t
|
|
||||||
shortcut:
|
|
||||||
resize: FL_RESIZE_NONE
|
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
|
||||||
name: toctype
|
|
||||||
callback: TocUpdateCB
|
|
||||||
argument: 0
|
|
||||||
|
|
||||||
=============== FORM ===============
|
=============== FORM ===============
|
||||||
Name: form_ref
|
Name: form_ref
|
||||||
Width: 590
|
Width: 590
|
||||||
|
@ -38,6 +38,7 @@ src/frontends/xforms/FormPrint.C
|
|||||||
src/frontends/xforms/form_print.C
|
src/frontends/xforms/form_print.C
|
||||||
src/frontends/xforms/FormTabular.C
|
src/frontends/xforms/FormTabular.C
|
||||||
src/frontends/xforms/form_tabular.C
|
src/frontends/xforms/form_tabular.C
|
||||||
|
src/frontends/xforms/FormToc.C
|
||||||
src/frontends/xforms/FormUrl.C
|
src/frontends/xforms/FormUrl.C
|
||||||
src/frontends/xforms/form_url.C
|
src/frontends/xforms/form_url.C
|
||||||
src/frontends/xforms/Menubar_pimpl.C
|
src/frontends/xforms/Menubar_pimpl.C
|
||||||
@ -57,9 +58,6 @@ src/insets/insetindex.C
|
|||||||
src/insets/insetinfo.C
|
src/insets/insetinfo.C
|
||||||
src/insets/insetlabel.C
|
src/insets/insetlabel.C
|
||||||
src/insets/insetlist.C
|
src/insets/insetlist.C
|
||||||
src/insets/insetloa.C
|
|
||||||
src/insets/insetlof.C
|
|
||||||
src/insets/insetlot.C
|
|
||||||
src/insets/insetmarginal.C
|
src/insets/insetmarginal.C
|
||||||
src/insets/insetminipage.C
|
src/insets/insetminipage.C
|
||||||
src/insets/insetparent.C
|
src/insets/insetparent.C
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include FORMS_H_LOCATION
|
#include FORMS_H_LOCATION
|
||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
|
#include "support/utility.hpp"
|
||||||
|
|
||||||
class LyXView;
|
class LyXView;
|
||||||
class LyXText;
|
class LyXText;
|
||||||
@ -27,7 +28,7 @@ class LyXScreen;
|
|||||||
class WorkArea;
|
class WorkArea;
|
||||||
|
|
||||||
///
|
///
|
||||||
class BufferView {
|
class BufferView : public noncopyable {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
enum UpdateCodes {
|
enum UpdateCodes {
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include FORMS_H_LOCATION
|
#include FORMS_H_LOCATION
|
||||||
|
|
||||||
#include "Timeout.h"
|
#include "Timeout.h"
|
||||||
|
#include "support/utility.hpp"
|
||||||
|
|
||||||
// uncomment this line to try out the new menus
|
// uncomment this line to try out the new menus
|
||||||
#define NEW_MENUBAR 1
|
#define NEW_MENUBAR 1
|
||||||
@ -47,7 +48,7 @@ using SigC::Object;
|
|||||||
view is supposed (at least IMHO) to be another class, that shows its output
|
view is supposed (at least IMHO) to be another class, that shows its output
|
||||||
in one or more LyXView's.
|
in one or more LyXView's.
|
||||||
*/
|
*/
|
||||||
class LyXView : public Object {
|
class LyXView : public Object, public noncopyable {
|
||||||
public:
|
public:
|
||||||
/// constructor
|
/// constructor
|
||||||
LyXView(int w, int h);
|
LyXView(int w, int h);
|
||||||
|
29
src/buffer.C
29
src/buffer.C
@ -56,9 +56,6 @@
|
|||||||
#include "insets/insetindex.h"
|
#include "insets/insetindex.h"
|
||||||
#include "insets/insetinclude.h"
|
#include "insets/insetinclude.h"
|
||||||
#include "insets/insettoc.h"
|
#include "insets/insettoc.h"
|
||||||
#include "insets/insetlof.h"
|
|
||||||
#include "insets/insetlot.h"
|
|
||||||
#include "insets/insetloa.h"
|
|
||||||
#include "insets/insetparent.h"
|
#include "insets/insetparent.h"
|
||||||
#include "insets/insetspecialchar.h"
|
#include "insets/insetspecialchar.h"
|
||||||
#include "insets/figinset.h"
|
#include "insets/figinset.h"
|
||||||
@ -981,14 +978,11 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
|
|||||||
if (!inscmd.getOptions().empty() || !inscmd.getContents().empty()) {
|
if (!inscmd.getOptions().empty() || !inscmd.getContents().empty()) {
|
||||||
inset = new InsetRef(inscmd, this);
|
inset = new InsetRef(inscmd, this);
|
||||||
}
|
}
|
||||||
} else if (inscmd.getCmdName() == "tableofcontents") {
|
} else if (inscmd.getCmdName() == "tableofcontents"
|
||||||
inset = new InsetTOC(this);
|
|| inscmd.getCmdName() == "listofalgorithms"
|
||||||
} else if (inscmd.getCmdName() == "listoffigures") {
|
|| inscmd.getCmdName() == "listoffigures"
|
||||||
inset = new InsetLOF(this);
|
|| inscmd.getCmdName() == "listoftables") {
|
||||||
} else if (inscmd.getCmdName() == "listofalgorithms") {
|
inset = new InsetTOC(inscmd.params());
|
||||||
inset = new InsetLOA(this);
|
|
||||||
} else if (inscmd.getCmdName() == "listoftables") {
|
|
||||||
inset = new InsetLOT(this);
|
|
||||||
} else if (inscmd.getCmdName() == "printindex") {
|
} else if (inscmd.getCmdName() == "printindex") {
|
||||||
inset = new InsetPrintIndex(this);
|
inset = new InsetPrintIndex(this);
|
||||||
} else if (inscmd.getCmdName() == "lyxparent") {
|
} else if (inscmd.getCmdName() == "lyxparent") {
|
||||||
@ -1216,14 +1210,11 @@ void Buffer::readInset(LyXLex & lex, LyXParagraph *& par,
|
|||||||
|| !inscmd.getContents().empty()) {
|
|| !inscmd.getContents().empty()) {
|
||||||
inset = new InsetRef(inscmd, this);
|
inset = new InsetRef(inscmd, this);
|
||||||
}
|
}
|
||||||
} else if (inscmd.getCmdName() == "tableofcontents") {
|
} else if (inscmd.getCmdName() == "tableofcontents"
|
||||||
inset = new InsetTOC(this);
|
|| inscmd.getCmdName() == "listofalgorithms"
|
||||||
} else if (inscmd.getCmdName() == "listoffigures") {
|
|| inscmd.getCmdName() == "listoffigures"
|
||||||
inset = new InsetLOF(this);
|
|| inscmd.getCmdName() == "listoftables") {
|
||||||
} else if (inscmd.getCmdName() == "listofalgorithms") {
|
inset = new InsetTOC(inscmd.params());
|
||||||
inset = new InsetLOA(this);
|
|
||||||
} else if (inscmd.getCmdName() == "listoftables") {
|
|
||||||
inset = new InsetLOT(this);
|
|
||||||
} else if (inscmd.getCmdName() == "printindex") {
|
} else if (inscmd.getCmdName() == "printindex") {
|
||||||
inset = new InsetPrintIndex(this);
|
inset = new InsetPrintIndex(this);
|
||||||
} else if (inscmd.getCmdName() == "lyxparent") {
|
} else if (inscmd.getCmdName() == "lyxparent") {
|
||||||
|
@ -59,6 +59,21 @@ _("Table of Contents|b");
|
|||||||
_("Version control");
|
_("Version control");
|
||||||
_("View LaTeX log file|w");
|
_("View LaTeX log file|w");
|
||||||
_("Paste primary selection");
|
_("Paste primary selection");
|
||||||
|
_("Multicolumn|M");
|
||||||
|
_("Line Top|T");
|
||||||
|
_("Line Bottom|B");
|
||||||
|
_("Line Left|L");
|
||||||
|
_("Line Right|R");
|
||||||
|
_("Align Left|e");
|
||||||
|
_("Align Center|C");
|
||||||
|
_("Align Right|i");
|
||||||
|
_("V.Align Top|o");
|
||||||
|
_("V.Align Center|n");
|
||||||
|
_("V.Align Bottom|v");
|
||||||
|
_("Append Row|A");
|
||||||
|
_("Append Column|u");
|
||||||
|
_("Delete Row|w");
|
||||||
|
_("Delete Column|D");
|
||||||
_("as Lines|L");
|
_("as Lines|L");
|
||||||
_("as Paragraphs|g");
|
_("as Paragraphs|g");
|
||||||
_("Register|R");
|
_("Register|R");
|
||||||
@ -72,6 +87,7 @@ _("Paragraph...|P");
|
|||||||
_("Paper...|a");
|
_("Paper...|a");
|
||||||
_("Document...|D");
|
_("Document...|D");
|
||||||
_("Table...|T");
|
_("Table...|T");
|
||||||
|
_("Tabular...|a");
|
||||||
_("Quotes...|Q");
|
_("Quotes...|Q");
|
||||||
_("Emphasize Style|E");
|
_("Emphasize Style|E");
|
||||||
_("Noun Style|N");
|
_("Noun Style|N");
|
||||||
|
@ -32,12 +32,11 @@ class LyXView;
|
|||||||
class InsetGraphics;
|
class InsetGraphics;
|
||||||
class InsetBibKey;
|
class InsetBibKey;
|
||||||
class InsetBibtex;
|
class InsetBibtex;
|
||||||
class InsetCitation;
|
|
||||||
class InsetInclude;
|
class InsetInclude;
|
||||||
class InsetIndex;
|
class InsetIndex;
|
||||||
class InsetInfo;
|
class InsetInfo;
|
||||||
class InsetTabular;
|
class InsetTabular;
|
||||||
class InsetUrl;
|
class InsetCommand;
|
||||||
|
|
||||||
using std::vector;
|
using std::vector;
|
||||||
|
|
||||||
@ -114,11 +113,15 @@ public:
|
|||||||
///
|
///
|
||||||
Signal1<void, InsetBibKey *> showBibkey;
|
Signal1<void, InsetBibKey *> showBibkey;
|
||||||
///
|
///
|
||||||
Signal1<void, InsetCitation *> showCitation;
|
Signal1<void, InsetCommand *> showCitation;
|
||||||
///
|
///
|
||||||
Signal1<void, string const &> createCitation;
|
Signal1<void, string const &> createCitation;
|
||||||
///
|
///
|
||||||
Signal1<void, InsetUrl *> showUrl;
|
Signal1<void, InsetCommand *> showTOC;
|
||||||
|
///
|
||||||
|
Signal1<void, string const &> createTOC;
|
||||||
|
///
|
||||||
|
Signal1<void, InsetCommand *> showUrl;
|
||||||
///
|
///
|
||||||
Signal1<void, string const &> createUrl;
|
Signal1<void, string const &> createUrl;
|
||||||
///
|
///
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#include "FormCitation.h"
|
#include "FormCitation.h"
|
||||||
#include "FormPrint.h"
|
#include "FormPrint.h"
|
||||||
#include "FormTabular.h"
|
#include "FormTabular.h"
|
||||||
|
#include "FormToc.h"
|
||||||
#include "FormUrl.h"
|
#include "FormUrl.h"
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
@ -23,6 +24,7 @@ Dialogs::Dialogs(LyXView * lv)
|
|||||||
dialogs_.push_back(new FormCitation(lv, this));
|
dialogs_.push_back(new FormCitation(lv, this));
|
||||||
dialogs_.push_back(new FormPrint(lv, this));
|
dialogs_.push_back(new FormPrint(lv, this));
|
||||||
dialogs_.push_back(new FormTabular(lv, this));
|
dialogs_.push_back(new FormTabular(lv, this));
|
||||||
|
dialogs_.push_back(new FormToc(lv, this));
|
||||||
dialogs_.push_back(new FormUrl(lv, this));
|
dialogs_.push_back(new FormUrl(lv, this));
|
||||||
|
|
||||||
// reduce the number of connections needed in
|
// reduce the number of connections needed in
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
#include FORMS_H_LOCATION
|
#include FORMS_H_LOCATION
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
@ -21,15 +19,12 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#include "BufferView.h"
|
|
||||||
#include "Dialogs.h"
|
#include "Dialogs.h"
|
||||||
#include "FormCitation.h"
|
#include "FormCitation.h"
|
||||||
#include "LyXView.h"
|
#include "LyXView.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "form_citation.h"
|
#include "form_citation.h"
|
||||||
#include "lyxfunc.h"
|
#include "lyxfunc.h"
|
||||||
#include "xform_macros.h"
|
|
||||||
#include "insets/insetcite.h"
|
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
|
|
||||||
using std::vector;
|
using std::vector;
|
||||||
@ -38,14 +33,12 @@ using std::max;
|
|||||||
using std::min;
|
using std::min;
|
||||||
using std::find;
|
using std::find;
|
||||||
|
|
||||||
C_RETURNCB(FormCitation, WMHideCB)
|
static vector<string> citekeys;
|
||||||
C_GENERICCB(FormCitation, OKCB)
|
static vector<string> bibkeys;
|
||||||
C_GENERICCB(FormCitation, CancelCB)
|
static vector<string> bibkeysInfo;
|
||||||
C_GENERICCB(FormCitation, InputCB)
|
|
||||||
|
|
||||||
FormCitation::FormCitation(LyXView * lv, Dialogs * d)
|
FormCitation::FormCitation(LyXView * lv, Dialogs * d)
|
||||||
: dialog_(0), lv_(lv), d_(d), u_(0), h_(0), ih_(0),
|
: FormCommand(lv, d, _("Citation"))
|
||||||
inset_(0), dialogIsOpen(false)
|
|
||||||
{
|
{
|
||||||
// let the dialog be shown
|
// let the dialog be shown
|
||||||
// These are permanent connections so we won't bother
|
// These are permanent connections so we won't bother
|
||||||
@ -58,6 +51,7 @@ FormCitation::FormCitation(LyXView * lv, Dialogs * d)
|
|||||||
FormCitation::~FormCitation()
|
FormCitation::~FormCitation()
|
||||||
{
|
{
|
||||||
free();
|
free();
|
||||||
|
delete dialog_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -67,60 +61,12 @@ void FormCitation::build()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::showInset( InsetCitation * inset )
|
FL_FORM * const FormCitation::form() const
|
||||||
{
|
{
|
||||||
if( dialogIsOpen || inset == 0 ) return;
|
if( dialog_ && dialog_->form_citation )
|
||||||
|
return dialog_->form_citation;
|
||||||
inset_ = inset;
|
else
|
||||||
ih_ = inset_->hide.connect(slot(this, &FormCitation::hide));
|
return 0;
|
||||||
|
|
||||||
textAfter = inset->getOptions();
|
|
||||||
updateCitekeys(inset->getContents());
|
|
||||||
show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::createInset( string const & arg )
|
|
||||||
{
|
|
||||||
if( dialogIsOpen ) return;
|
|
||||||
|
|
||||||
string keys;
|
|
||||||
if (contains(arg, "|")) {
|
|
||||||
keys = token(arg, '|', 0);
|
|
||||||
textAfter = token(arg, '|', 1);
|
|
||||||
} else {
|
|
||||||
keys = arg;
|
|
||||||
textAfter.erase();
|
|
||||||
}
|
|
||||||
|
|
||||||
updateCitekeys(keys);
|
|
||||||
show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::show()
|
|
||||||
{
|
|
||||||
if (!dialog_) {
|
|
||||||
build();
|
|
||||||
fl_set_form_atclose(dialog_->form_citation,
|
|
||||||
C_FormCitationWMHideCB, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
update(); // make sure its up-to-date
|
|
||||||
|
|
||||||
dialogIsOpen = true;
|
|
||||||
if (dialog_->form_citation->visible) {
|
|
||||||
fl_raise_form(dialog_->form_citation);
|
|
||||||
} else {
|
|
||||||
fl_show_form(dialog_->form_citation,
|
|
||||||
FL_PLACE_MOUSE | FL_FREE_SIZE,
|
|
||||||
FL_TRANSIENT,
|
|
||||||
_("Citation"));
|
|
||||||
u_ = d_->updateBufferDependent.
|
|
||||||
connect(slot(this, &FormCitation::update));
|
|
||||||
h_ = d_->hideBufferDependent.
|
|
||||||
connect(slot(this, &FormCitation::hide));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -136,9 +82,16 @@ void FormCitation::update()
|
|||||||
bibkeys.push_back(blist[i].first);
|
bibkeys.push_back(blist[i].first);
|
||||||
bibkeysInfo.push_back(blist[i].second);
|
bibkeysInfo.push_back(blist[i].second);
|
||||||
}
|
}
|
||||||
|
|
||||||
blist.clear();
|
blist.clear();
|
||||||
|
|
||||||
|
citekeys.clear();
|
||||||
|
string tmp, keys( params.getContents() );
|
||||||
|
keys = frontStrip( split(keys, tmp, ',') );
|
||||||
|
while( !tmp.empty() ) {
|
||||||
|
citekeys.push_back( tmp );
|
||||||
|
keys = frontStrip( split(keys, tmp, ',') );
|
||||||
|
}
|
||||||
|
|
||||||
fl_freeze_form( dialog_->form_citation );
|
fl_freeze_form( dialog_->form_citation );
|
||||||
|
|
||||||
updateBrowser( dialog_->bibBrsr, bibkeys );
|
updateBrowser( dialog_->bibBrsr, bibkeys );
|
||||||
@ -159,26 +112,12 @@ void FormCitation::update()
|
|||||||
bool bibPresent = ( bibkeys.size() > 0 );
|
bool bibPresent = ( bibkeys.size() > 0 );
|
||||||
setSize( size, bibPresent );
|
setSize( size, bibPresent );
|
||||||
|
|
||||||
fl_set_input( dialog_->textAftr, textAfter.c_str() );
|
fl_set_input( dialog_->textAftr, params.getOptions().c_str() );
|
||||||
|
|
||||||
fl_unfreeze_form( dialog_->form_citation );
|
fl_unfreeze_form( dialog_->form_citation );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::updateCitekeys( string const & keysIn )
|
|
||||||
{
|
|
||||||
citekeys.clear();
|
|
||||||
|
|
||||||
string tmp;
|
|
||||||
string keys = keysIn;
|
|
||||||
keys = frontStrip( split(keys, tmp, ',') );
|
|
||||||
while( !tmp.empty() ) {
|
|
||||||
citekeys.push_back( tmp );
|
|
||||||
keys = frontStrip( split(keys, tmp, ',') );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::updateBrowser( FL_OBJECT * browser,
|
void FormCitation::updateBrowser( FL_OBJECT * browser,
|
||||||
vector<string> const & keys ) const
|
vector<string> const & keys ) const
|
||||||
{
|
{
|
||||||
@ -253,60 +192,63 @@ void FormCitation::setCiteButtons( State status ) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::setSize( int brsrHeight, bool bibPresent ) const
|
void FormCitation::setSize( int hbrsr, bool bibPresent ) const
|
||||||
{
|
{
|
||||||
int const infoHeight = 110;
|
int const hinfo = dialog_->infoBrsr->h;
|
||||||
int const otherHeight = 140;
|
int const hother = 140;
|
||||||
brsrHeight = max( brsrHeight, 175 );
|
hbrsr = max( hbrsr, 175 );
|
||||||
int formHeight = brsrHeight + otherHeight;
|
int wform = dialog_->form_citation->w;
|
||||||
|
int hform = hbrsr + hother;
|
||||||
|
|
||||||
if( bibPresent ) formHeight += infoHeight + 30;
|
if( bibPresent ) hform += hinfo + 30;
|
||||||
fl_set_form_size( dialog_->form_citation, 430, formHeight );
|
fl_set_form_size( dialog_->form_citation, wform, hform );
|
||||||
|
|
||||||
// No resizing is alowed in the y-direction
|
// No resizing is alowed in the y-direction
|
||||||
fl_set_form_minsize( dialog_->form_citation, 430, formHeight );
|
fl_set_form_minsize( dialog_->form_citation, wform, hform );
|
||||||
fl_set_form_maxsize( dialog_->form_citation, 1000, formHeight );
|
fl_set_form_maxsize( dialog_->form_citation, 3*wform, hform );
|
||||||
|
|
||||||
int ypos = 0;
|
int y = 0;
|
||||||
fl_set_object_geometry( dialog_->box, 0, ypos, 430, formHeight );
|
fl_set_object_geometry( dialog_->box, 0, y, wform, hform );
|
||||||
ypos += 30;
|
y += 30;
|
||||||
fl_set_object_geometry( dialog_->citeBrsr, 10, ypos, 180, brsrHeight );
|
fl_set_object_geometry( dialog_->citeBrsr, 10, y, 180, hbrsr );
|
||||||
fl_set_object_geometry( dialog_->bibBrsr, 240, ypos, 180, brsrHeight );
|
fl_set_object_geometry( dialog_->bibBrsr, 240, y, 180, hbrsr );
|
||||||
|
|
||||||
fl_set_object_position( dialog_->addBtn, 200, ypos );
|
fl_set_object_position( dialog_->addBtn, 200, y );
|
||||||
ypos += 35;
|
y += 5 + dialog_->addBtn->h;
|
||||||
fl_set_object_position( dialog_->delBtn, 200, ypos );
|
fl_set_object_position( dialog_->delBtn, 200, y );
|
||||||
ypos += 35;
|
y += 5 + dialog_->delBtn->h;
|
||||||
fl_set_object_position( dialog_->upBtn, 200, ypos );
|
fl_set_object_position( dialog_->upBtn, 200, y );
|
||||||
ypos += 35;
|
y += 5 + dialog_->upBtn->h;
|
||||||
fl_set_object_position( dialog_->downBtn, 200, ypos );
|
fl_set_object_position( dialog_->downBtn, 200, y );
|
||||||
|
|
||||||
ypos = brsrHeight+30; // base of Citation/Bibliography browsers
|
y = dialog_->bibBrsr->y + dialog_->bibBrsr->h;
|
||||||
|
|
||||||
// awaiting natbib support
|
// awaiting natbib support
|
||||||
fl_hide_object( dialog_->style );
|
fl_hide_object( dialog_->style );
|
||||||
|
|
||||||
if( bibPresent ) {
|
if( bibPresent ) {
|
||||||
ypos += 30;
|
y += 30;
|
||||||
fl_set_object_position( dialog_->infoBrsr, 10, ypos );
|
fl_set_object_position( dialog_->infoBrsr, 10, y );
|
||||||
fl_show_object( dialog_->infoBrsr );
|
fl_show_object( dialog_->infoBrsr );
|
||||||
ypos += infoHeight;
|
y += hinfo;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fl_hide_object( dialog_->infoBrsr );
|
fl_hide_object( dialog_->infoBrsr );
|
||||||
|
|
||||||
ypos += 20;
|
y += 20;
|
||||||
// awaiting natbib support
|
// awaiting natbib support
|
||||||
fl_hide_object( dialog_->textBefore );
|
fl_hide_object( dialog_->textBefore );
|
||||||
|
|
||||||
fl_set_object_position( dialog_->textAftr, 100, ypos );
|
fl_set_object_position( dialog_->textAftr, 100, y );
|
||||||
fl_set_object_position( dialog_->ok, 230, ypos+50 );
|
fl_set_object_position( dialog_->ok, 230, y+50 );
|
||||||
fl_set_object_position( dialog_->cancel, 330, ypos+50 );
|
fl_set_object_position( dialog_->cancel, 330, y+50 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::input( State cb )
|
void FormCitation::input( long data )
|
||||||
{
|
{
|
||||||
|
State cb = static_cast<FormCitation::State>( data );
|
||||||
|
|
||||||
switch( cb ) {
|
switch( cb ) {
|
||||||
case BIBBRSR:
|
case BIBBRSR:
|
||||||
{
|
{
|
||||||
@ -459,81 +401,20 @@ void FormCitation::apply()
|
|||||||
contents += citekeys[i];
|
contents += citekeys[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
textAfter = fl_get_input(dialog_->textAftr);
|
params.setContents( contents );
|
||||||
|
params.setOptions( fl_get_input(dialog_->textAftr) );
|
||||||
|
|
||||||
if( inset_ != 0 )
|
if( inset_ != 0 )
|
||||||
{
|
{
|
||||||
inset_->setContents( contents );
|
// Only update if contents have changed
|
||||||
inset_->setOptions( textAfter );
|
if( params.getCmdName() != inset_->getCmdName() ||
|
||||||
|
params.getContents() != inset_->getContents() ||
|
||||||
|
params.getOptions() != inset_->getOptions() ) {
|
||||||
|
inset_->setParams( params );
|
||||||
lv_->view()->updateInset( inset_, true );
|
lv_->view()->updateInset( inset_, true );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
InsetCommandParams p( "cite", contents, textAfter );
|
|
||||||
lv_->getLyXFunc()->Dispatch( LFUN_INSERT_CITATION,
|
lv_->getLyXFunc()->Dispatch( LFUN_INSERT_CITATION,
|
||||||
p.getAsString().c_str() );
|
params.getAsString().c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::hide()
|
|
||||||
{
|
|
||||||
if (dialog_
|
|
||||||
&& dialog_->form_citation
|
|
||||||
&& dialog_->form_citation->visible) {
|
|
||||||
fl_hide_form(dialog_->form_citation);
|
|
||||||
u_.disconnect();
|
|
||||||
h_.disconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
// free up the dialog for another inset
|
|
||||||
inset_ = 0;
|
|
||||||
ih_.disconnect();
|
|
||||||
dialogIsOpen = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::free()
|
|
||||||
{
|
|
||||||
// we don't need to delete u and h here because
|
|
||||||
// hide() does that after disconnecting.
|
|
||||||
if (dialog_) {
|
|
||||||
if (dialog_->form_citation
|
|
||||||
&& dialog_->form_citation->visible) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
fl_free_form(dialog_->form_citation);
|
|
||||||
delete dialog_;
|
|
||||||
dialog_ = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int FormCitation::WMHideCB(FL_FORM * form, void *)
|
|
||||||
{
|
|
||||||
// Ensure that the signals (u and h) are disconnected even if the
|
|
||||||
// window manager is used to close the dialog.
|
|
||||||
FormCitation * pre = static_cast<FormCitation*>(form->u_vdata);
|
|
||||||
pre->hide();
|
|
||||||
return FL_CANCEL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::OKCB(FL_OBJECT * ob, long)
|
|
||||||
{
|
|
||||||
FormCitation * pre = static_cast<FormCitation*>(ob->form->u_vdata);
|
|
||||||
pre->apply();
|
|
||||||
pre->hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::CancelCB(FL_OBJECT * ob, long)
|
|
||||||
{
|
|
||||||
FormCitation * pre = static_cast<FormCitation*>(ob->form->u_vdata);
|
|
||||||
pre->hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormCitation::InputCB(FL_OBJECT * ob, long data)
|
|
||||||
{
|
|
||||||
FormCitation * pre = static_cast<FormCitation*>(ob->form->u_vdata);
|
|
||||||
pre->input( static_cast<FormCitation::State>(data) );
|
|
||||||
}
|
|
||||||
|
@ -12,25 +12,16 @@
|
|||||||
#ifndef FORMCITATION_H
|
#ifndef FORMCITATION_H
|
||||||
#define FORMCITATION_H
|
#define FORMCITATION_H
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "DialogBase.h"
|
|
||||||
#include "LString.h"
|
|
||||||
#include "support/utility.hpp"
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class Dialogs;
|
#include "FormCommand.h"
|
||||||
// same arguement as in Dialogs.h s/LyX/UI/
|
|
||||||
class LyXView;
|
|
||||||
class InsetCitation;
|
|
||||||
struct FD_form_citation;
|
struct FD_form_citation;
|
||||||
|
|
||||||
/** This class provides an XForms implementation of the FormCitation Dialog.
|
/** This class provides an XForms implementation of the FormCitation Dialog.
|
||||||
*/
|
*/
|
||||||
class FormCitation : public DialogBase, public noncopyable {
|
class FormCitation : public FormCommand, public noncopyable {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
enum State {
|
enum State {
|
||||||
@ -51,39 +42,18 @@ public:
|
|||||||
~FormCitation();
|
~FormCitation();
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**@name Real per-instance Callback Methods */
|
|
||||||
//@{
|
|
||||||
static int WMHideCB(FL_FORM *, void *);
|
|
||||||
static void OKCB(FL_OBJECT *, long);
|
|
||||||
static void CancelCB(FL_OBJECT *, long);
|
|
||||||
static void InputCB(FL_OBJECT *, long);
|
|
||||||
//@}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**@name Slot Methods */
|
/**@name Slot Methods */
|
||||||
//@{
|
//@{
|
||||||
/// Create the dialog if necessary, update it and display it.
|
virtual void update();
|
||||||
void createInset( string const & );
|
|
||||||
///
|
|
||||||
void showInset( InsetCitation * );
|
|
||||||
///
|
|
||||||
void show();
|
|
||||||
/// Hide the dialog.
|
|
||||||
void hide();
|
|
||||||
///
|
|
||||||
void update();
|
|
||||||
//@}
|
|
||||||
|
|
||||||
/**@name Dialog internal methods */
|
|
||||||
//@{
|
|
||||||
/// Apply from dialog
|
/// Apply from dialog
|
||||||
void apply();
|
virtual void apply();
|
||||||
/// Filter the inputs
|
/// Filter the inputs
|
||||||
void input( State );
|
virtual void input( long );
|
||||||
/// Build the dialog
|
/// Build the dialog
|
||||||
void build();
|
virtual void build();
|
||||||
///
|
///
|
||||||
void updateCitekeys( string const & );
|
virtual FL_FORM * const form() const;
|
||||||
///
|
///
|
||||||
void updateBrowser( FL_OBJECT *, std::vector<string> const & ) const;
|
void updateBrowser( FL_OBJECT *, std::vector<string> const & ) const;
|
||||||
///
|
///
|
||||||
@ -94,42 +64,10 @@ private:
|
|||||||
void setSize( int, bool ) const;
|
void setSize( int, bool ) const;
|
||||||
///
|
///
|
||||||
FD_form_citation * build_citation();
|
FD_form_citation * build_citation();
|
||||||
/// Explicitly free the dialog.
|
|
||||||
void free();
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**@name Private Data */
|
|
||||||
//@{
|
|
||||||
/// Real GUI implementation.
|
/// Real GUI implementation.
|
||||||
FD_form_citation * dialog_;
|
FD_form_citation * dialog_;
|
||||||
/** Which LyXFunc do we use?
|
|
||||||
We could modify Dialogs to have a visible LyXFunc* instead and
|
|
||||||
save a couple of bytes per dialog.
|
|
||||||
*/
|
|
||||||
LyXView * lv_;
|
|
||||||
/** Which Dialogs do we belong to?
|
|
||||||
Used so we can get at the signals we have to connect to.
|
|
||||||
*/
|
|
||||||
Dialogs * d_;
|
|
||||||
/// Update connection.
|
|
||||||
Connection u_;
|
|
||||||
/// Hide connection.
|
|
||||||
Connection h_;
|
|
||||||
/// inset::hide connection.
|
|
||||||
Connection ih_;
|
|
||||||
///
|
|
||||||
InsetCitation * inset_;
|
|
||||||
///
|
|
||||||
bool dialogIsOpen;
|
|
||||||
///
|
|
||||||
string textAfter;
|
|
||||||
///
|
|
||||||
std::vector<string> citekeys;
|
|
||||||
///
|
|
||||||
std::vector<string> bibkeys;
|
|
||||||
///
|
|
||||||
std::vector<string> bibkeysInfo;
|
|
||||||
//@}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
151
src/frontends/xforms/FormCommand.C
Normal file
151
src/frontends/xforms/FormCommand.C
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include FORMS_H_LOCATION
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include "Dialogs.h"
|
||||||
|
#include "FormCommand.h"
|
||||||
|
#include "xform_macros.h"
|
||||||
|
|
||||||
|
C_RETURNCB(FormCommand, WMHideCB)
|
||||||
|
C_GENERICCB(FormCommand, ApplyCB)
|
||||||
|
C_GENERICCB(FormCommand, CancelCB)
|
||||||
|
C_GENERICCB(FormCommand, InputCB)
|
||||||
|
C_GENERICCB(FormCommand, OKCB)
|
||||||
|
|
||||||
|
FormCommand::FormCommand(LyXView * lv, Dialogs * d, string const & t)
|
||||||
|
: lv_(lv), d_(d), u_(0), h_(0), ih_(0),
|
||||||
|
inset_(0), dialogIsOpen(false), title(t)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::showInset( InsetCommand * const inset )
|
||||||
|
{
|
||||||
|
if( dialogIsOpen || inset == 0 ) return;
|
||||||
|
|
||||||
|
inset_ = inset;
|
||||||
|
ih_ = inset_->hide.connect(slot(this, &FormCommand::hide));
|
||||||
|
|
||||||
|
params = inset->params();
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::createInset( string const & arg )
|
||||||
|
{
|
||||||
|
if( dialogIsOpen ) return;
|
||||||
|
|
||||||
|
params.setFromString( arg );
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::show()
|
||||||
|
{
|
||||||
|
if (!form()) {
|
||||||
|
build();
|
||||||
|
fl_set_form_atclose(form(),
|
||||||
|
C_FormCommandWMHideCB, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
fl_freeze_form( form() );
|
||||||
|
update(); // make sure its up-to-date
|
||||||
|
fl_unfreeze_form( form() );
|
||||||
|
|
||||||
|
dialogIsOpen = true;
|
||||||
|
if (form()->visible) {
|
||||||
|
fl_raise_form(form());
|
||||||
|
} else {
|
||||||
|
fl_show_form(form(),
|
||||||
|
FL_PLACE_MOUSE | FL_FREE_SIZE,
|
||||||
|
FL_TRANSIENT,
|
||||||
|
title.c_str());
|
||||||
|
u_ = d_->updateBufferDependent.
|
||||||
|
connect(slot(this, &FormCommand::update));
|
||||||
|
h_ = d_->hideBufferDependent.
|
||||||
|
connect(slot(this, &FormCommand::hide));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::free()
|
||||||
|
{
|
||||||
|
// we don't need to delete u and h here because
|
||||||
|
// hide() does that after disconnecting.
|
||||||
|
if( form() ) {
|
||||||
|
if( form()->visible)
|
||||||
|
hide();
|
||||||
|
fl_free_form(form());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::hide()
|
||||||
|
{
|
||||||
|
if (form() && form()->visible) {
|
||||||
|
fl_hide_form(form());
|
||||||
|
u_.disconnect();
|
||||||
|
h_.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
// free up the dialog for another inset
|
||||||
|
inset_ = 0;
|
||||||
|
ih_.disconnect();
|
||||||
|
dialogIsOpen = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int FormCommand::WMHideCB(FL_FORM * form, void *)
|
||||||
|
{
|
||||||
|
// Ensure that the signals (u and h) are disconnected even if the
|
||||||
|
// window manager is used to close the dialog.
|
||||||
|
FormCommand * pre = static_cast<FormCommand*>(form->u_vdata);
|
||||||
|
pre->hide();
|
||||||
|
return FL_CANCEL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::ApplyCB(FL_OBJECT * ob, long)
|
||||||
|
{
|
||||||
|
FormCommand * pre = static_cast<FormCommand*>(ob->form->u_vdata);
|
||||||
|
pre->apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::CancelCB(FL_OBJECT * ob, long)
|
||||||
|
{
|
||||||
|
FormCommand * pre = static_cast<FormCommand*>(ob->form->u_vdata);
|
||||||
|
pre->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::InputCB(FL_OBJECT * ob, long data )
|
||||||
|
{
|
||||||
|
FormCommand * pre = static_cast<FormCommand*>(ob->form->u_vdata);
|
||||||
|
pre->input( data );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormCommand::OKCB(FL_OBJECT * ob, long)
|
||||||
|
{
|
||||||
|
FormCommand * pre = static_cast<FormCommand*>(ob->form->u_vdata);
|
||||||
|
pre->apply();
|
||||||
|
pre->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
97
src/frontends/xforms/FormCommand.h
Normal file
97
src/frontends/xforms/FormCommand.h
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FORMCOMMAND_H
|
||||||
|
#define FORMCOMMAND_H
|
||||||
|
|
||||||
|
#include "DialogBase.h"
|
||||||
|
#include "LString.h"
|
||||||
|
#include "support/utility.hpp"
|
||||||
|
#include "insets/insetcommand.h"
|
||||||
|
|
||||||
|
class Dialogs;
|
||||||
|
class LyXView;
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** This class is an XForms GUI base class to insets derived from
|
||||||
|
InsetCommand
|
||||||
|
*/
|
||||||
|
class FormCommand : public DialogBase, public noncopyable {
|
||||||
|
public:
|
||||||
|
/// Constructor
|
||||||
|
FormCommand(LyXView *, Dialogs *, string const & );
|
||||||
|
|
||||||
|
/**@name Real per-instance Callback Methods */
|
||||||
|
//@{
|
||||||
|
static int WMHideCB(FL_FORM *, void *);
|
||||||
|
static void OKCB(FL_OBJECT *, long);
|
||||||
|
static void ApplyCB(FL_OBJECT *, long);
|
||||||
|
static void CancelCB(FL_OBJECT *, long);
|
||||||
|
static void InputCB(FL_OBJECT *, long);
|
||||||
|
//@}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/**@name Slot Methods */
|
||||||
|
//@{
|
||||||
|
/// Create the dialog if necessary, update it and display it.
|
||||||
|
void createInset( string const & );
|
||||||
|
///
|
||||||
|
void showInset( InsetCommand * const );
|
||||||
|
///
|
||||||
|
void show();
|
||||||
|
/// Hide the dialog.
|
||||||
|
void hide();
|
||||||
|
/// Explicitly free the dialog.
|
||||||
|
void free();
|
||||||
|
///
|
||||||
|
virtual void input( long ) = 0;
|
||||||
|
///
|
||||||
|
virtual void update() = 0;
|
||||||
|
/// Apply from dialog
|
||||||
|
virtual void apply() = 0;
|
||||||
|
/// Build the dialog
|
||||||
|
virtual void build() = 0;
|
||||||
|
///
|
||||||
|
virtual FL_FORM * const form() const = 0;
|
||||||
|
//@}
|
||||||
|
|
||||||
|
/**@name Private Data */
|
||||||
|
//@{
|
||||||
|
/** Which LyXFunc do we use?
|
||||||
|
We could modify Dialogs to have a visible LyXFunc* instead and
|
||||||
|
save a couple of bytes per dialog.
|
||||||
|
*/
|
||||||
|
LyXView * lv_;
|
||||||
|
/** Which Dialogs do we belong to?
|
||||||
|
Used so we can get at the signals we have to connect to.
|
||||||
|
*/
|
||||||
|
Dialogs * d_;
|
||||||
|
/// Update connection.
|
||||||
|
Connection u_;
|
||||||
|
/// Hide connection.
|
||||||
|
Connection h_;
|
||||||
|
/// inset::hide connection.
|
||||||
|
Connection ih_;
|
||||||
|
///
|
||||||
|
InsetCommand * inset_;
|
||||||
|
///
|
||||||
|
bool dialogIsOpen;
|
||||||
|
///
|
||||||
|
InsetCommandParams params;
|
||||||
|
///
|
||||||
|
string title;
|
||||||
|
//@}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
161
src/frontends/xforms/FormToc.C
Normal file
161
src/frontends/xforms/FormToc.C
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include FORMS_H_LOCATION
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include "gettext.h"
|
||||||
|
#include "Dialogs.h"
|
||||||
|
#include "FormToc.h"
|
||||||
|
#include "LyXView.h"
|
||||||
|
#include "buffer.h"
|
||||||
|
#include "form_toc.h"
|
||||||
|
#include "lyxtext.h"
|
||||||
|
|
||||||
|
static vector<Buffer::TocItem> toclist;
|
||||||
|
|
||||||
|
FormToc::FormToc(LyXView * lv, Dialogs * d)
|
||||||
|
: FormCommand(lv, d, _("Table of Contents"))
|
||||||
|
{
|
||||||
|
// let the dialog be shown
|
||||||
|
// These are permanent connections so we won't bother
|
||||||
|
// storing a copy because we won't be disconnecting.
|
||||||
|
d->showTOC.connect(slot(this, &FormToc::showInset));
|
||||||
|
d->createTOC.connect(slot(this, &FormToc::createInset));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FormToc::~FormToc()
|
||||||
|
{
|
||||||
|
free();
|
||||||
|
delete dialog_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormToc::build()
|
||||||
|
{
|
||||||
|
dialog_ = build_toc();
|
||||||
|
fl_addto_choice(dialog_->type,
|
||||||
|
_(" TOC | LOF | LOT | LOA "));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FL_FORM * const FormToc::form() const
|
||||||
|
{
|
||||||
|
if( dialog_ && dialog_->form_toc )
|
||||||
|
return dialog_->form_toc;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormToc::update()
|
||||||
|
{
|
||||||
|
static int ow = -1, oh;
|
||||||
|
|
||||||
|
if (ow < 0) {
|
||||||
|
ow = form()->w;
|
||||||
|
oh = form()->h;
|
||||||
|
|
||||||
|
fl_set_form_minsize(form(), ow, oh);
|
||||||
|
fl_set_form_maxsize(form(), 2*ow, oh);
|
||||||
|
}
|
||||||
|
|
||||||
|
Buffer::TocType type;
|
||||||
|
|
||||||
|
if( params.getCmdName() == "tableofcontents" )
|
||||||
|
type = Buffer::TOC_TOC;
|
||||||
|
|
||||||
|
else if( params.getCmdName() == "listofalgorithms" )
|
||||||
|
type = Buffer::TOC_LOA;
|
||||||
|
|
||||||
|
else if( params.getCmdName() == "listoffigures" )
|
||||||
|
type = Buffer::TOC_LOF;
|
||||||
|
|
||||||
|
else
|
||||||
|
type = Buffer::TOC_LOT;
|
||||||
|
|
||||||
|
fl_set_choice( dialog_->type, type+1 );
|
||||||
|
|
||||||
|
updateToc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormToc::updateToc()
|
||||||
|
{
|
||||||
|
if (!lv_->view()->available()) {
|
||||||
|
toclist.clear();
|
||||||
|
fl_clear_browser( dialog_->browser );
|
||||||
|
fl_add_browser_line( dialog_->browser, _("*** No Document ***"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
vector<vector<Buffer::TocItem> > tmp =
|
||||||
|
lv_->view()->buffer()->getTocList();
|
||||||
|
int type = fl_get_choice( dialog_->type ) - 1;
|
||||||
|
|
||||||
|
// Check if all elements are the same.
|
||||||
|
if (toclist.size() == tmp[type].size()) {
|
||||||
|
unsigned int i = 0;
|
||||||
|
for (; i < toclist.size(); ++i) {
|
||||||
|
if (toclist[i] != tmp[type][i])
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i >= toclist.size()) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// List has changed. Update browser
|
||||||
|
toclist = tmp[type];
|
||||||
|
|
||||||
|
static Buffer * buffer = 0;
|
||||||
|
int topline = 0;
|
||||||
|
int line = 0;
|
||||||
|
if (buffer == lv_->view()->buffer()) {
|
||||||
|
topline = fl_get_browser_topline( dialog_->browser );
|
||||||
|
line = fl_get_browser( dialog_->browser );
|
||||||
|
} else
|
||||||
|
buffer = lv_->view()->buffer();
|
||||||
|
|
||||||
|
fl_clear_browser( dialog_->browser );
|
||||||
|
|
||||||
|
for (vector<Buffer::TocItem>::const_iterator it = toclist.begin();
|
||||||
|
it != toclist.end(); ++it)
|
||||||
|
fl_add_browser_line( dialog_->browser,
|
||||||
|
(string(4*(*it).depth,' ')+(*it).str).c_str());
|
||||||
|
|
||||||
|
fl_set_browser_topline( dialog_->browser, topline );
|
||||||
|
fl_select_browser_line( dialog_->browser, line );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FormToc::apply()
|
||||||
|
{
|
||||||
|
if (!lv_->view()->available())
|
||||||
|
return;
|
||||||
|
|
||||||
|
updateToc();
|
||||||
|
|
||||||
|
unsigned int choice = fl_get_browser( dialog_->browser );
|
||||||
|
if (0 < choice && choice - 1 < toclist.size()) {
|
||||||
|
lv_->view()->beforeChange();
|
||||||
|
lv_->view()->text->SetCursor( lv_->view(), toclist[choice-1].par, 0 );
|
||||||
|
lv_->view()->text->sel_cursor =
|
||||||
|
lv_->view()->text->cursor;
|
||||||
|
lv_->view()->update(BufferView::SELECT|BufferView::FITCUR);
|
||||||
|
}
|
||||||
|
}
|
56
src/frontends/xforms/FormToc.h
Normal file
56
src/frontends/xforms/FormToc.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ======================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FORMTOC_H
|
||||||
|
#define FORMTOC_H
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "FormCommand.h"
|
||||||
|
struct FD_form_toc;
|
||||||
|
|
||||||
|
/** This class provides an XForms implementation of the FormToc Dialog.
|
||||||
|
*/
|
||||||
|
class FormToc : public FormCommand, public noncopyable {
|
||||||
|
public:
|
||||||
|
/**@name Constructors and Destructors */
|
||||||
|
//@{
|
||||||
|
///
|
||||||
|
FormToc(LyXView *, Dialogs *);
|
||||||
|
///
|
||||||
|
~FormToc();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/**@name Slot Methods */
|
||||||
|
//@{
|
||||||
|
///
|
||||||
|
virtual void update();
|
||||||
|
/// Apply from dialog
|
||||||
|
virtual void apply();
|
||||||
|
///
|
||||||
|
virtual void input( long ) {};
|
||||||
|
/// Build the dialog
|
||||||
|
virtual void build();
|
||||||
|
///
|
||||||
|
virtual FL_FORM * const form() const;
|
||||||
|
///
|
||||||
|
void updateToc();
|
||||||
|
///
|
||||||
|
FD_form_toc * build_toc();
|
||||||
|
//@}
|
||||||
|
|
||||||
|
/// Real GUI implementation.
|
||||||
|
FD_form_toc * dialog_;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -31,27 +31,21 @@
|
|||||||
#include "insets/inseturl.h"
|
#include "insets/inseturl.h"
|
||||||
#include "support/filetools.h"
|
#include "support/filetools.h"
|
||||||
|
|
||||||
C_RETURNCB(FormUrl, WMHideCB)
|
|
||||||
C_GENERICCB(FormUrl, OKCB)
|
|
||||||
C_GENERICCB(FormUrl, CancelCB)
|
|
||||||
|
|
||||||
FormUrl::FormUrl(LyXView * lv, Dialogs * d)
|
FormUrl::FormUrl(LyXView * lv, Dialogs * d)
|
||||||
: dialog_(0), lv_(lv), d_(d), u_(0), h_(0), ih_(0),
|
: FormCommand(lv, d, _("Url"))
|
||||||
inset_(0), dialogIsOpen(false)
|
|
||||||
{
|
{
|
||||||
// let the dialog be shown
|
// let the dialog be shown
|
||||||
// These are permanent connections so we won't bother
|
// These are permanent connections so we won't bother
|
||||||
// storing a copy because we won't be disconnecting.
|
// storing a copy because we won't be disconnecting.
|
||||||
d->showUrl.connect(slot(this, &FormUrl::showInset));
|
d->showUrl.connect(slot(this, &FormUrl::showInset));
|
||||||
d->createUrl.connect(slot(this, &FormUrl::createInset));
|
d->createUrl.connect(slot(this, &FormUrl::createInset));
|
||||||
params = new InsetCommandParams();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
FormUrl::~FormUrl()
|
FormUrl::~FormUrl()
|
||||||
{
|
{
|
||||||
free();
|
free();
|
||||||
delete params;
|
delete dialog_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -61,151 +55,78 @@ void FormUrl::build()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::showInset( InsetUrl * inset )
|
FL_FORM * const FormUrl::form() const
|
||||||
{
|
{
|
||||||
if( dialogIsOpen || inset == 0 ) return;
|
if( dialog_ && dialog_->form_url )
|
||||||
|
return dialog_->form_url;
|
||||||
inset_ = inset;
|
else
|
||||||
ih_ = inset_->hide.connect(slot(this, &FormUrl::hide));
|
return 0;
|
||||||
|
|
||||||
(*params) = inset->params();
|
|
||||||
show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::createInset( string const & arg )
|
|
||||||
{
|
|
||||||
if( dialogIsOpen ) return;
|
|
||||||
|
|
||||||
params->setFromString( arg );
|
|
||||||
show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::show()
|
|
||||||
{
|
|
||||||
if (!dialog_) {
|
|
||||||
build();
|
|
||||||
fl_set_form_atclose(dialog_->form_url,
|
|
||||||
C_FormUrlWMHideCB, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
update(); // make sure its up-to-date
|
|
||||||
|
|
||||||
dialogIsOpen = true;
|
|
||||||
if (dialog_->form_url->visible) {
|
|
||||||
fl_raise_form(dialog_->form_url);
|
|
||||||
} else {
|
|
||||||
fl_show_form(dialog_->form_url,
|
|
||||||
FL_PLACE_MOUSE | FL_FREE_SIZE,
|
|
||||||
FL_TRANSIENT,
|
|
||||||
_("Url"));
|
|
||||||
u_ = d_->updateBufferDependent.
|
|
||||||
connect(slot(this, &FormUrl::update));
|
|
||||||
h_ = d_->hideBufferDependent.
|
|
||||||
connect(slot(this, &FormUrl::hide));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::update()
|
void FormUrl::update()
|
||||||
{
|
{
|
||||||
fl_set_input(dialog_->url, params->getContents().c_str());
|
|
||||||
fl_set_input(dialog_->name, params->getOptions().c_str());
|
|
||||||
|
|
||||||
if ( params->getCmdName() == "url" )
|
|
||||||
fl_set_button(dialog_->radio_html, 0);
|
|
||||||
else
|
|
||||||
fl_set_button(dialog_->radio_html, 1);
|
|
||||||
|
|
||||||
static int ow = -1, oh;
|
static int ow = -1, oh;
|
||||||
|
|
||||||
if (ow < 0) {
|
if (ow < 0) {
|
||||||
ow = dialog_->form_url->w;
|
ow = dialog_->form_url->w;
|
||||||
oh = dialog_->form_url->h;
|
oh = dialog_->form_url->h;
|
||||||
}
|
|
||||||
|
|
||||||
fl_set_form_minsize(dialog_->form_url, ow, oh);
|
fl_set_form_minsize(dialog_->form_url, ow, oh);
|
||||||
fl_set_form_maxsize(dialog_->form_url, 2*ow, oh);
|
fl_set_form_maxsize(dialog_->form_url, 2*ow, oh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fl_freeze_form( dialog_->form_url );
|
||||||
|
|
||||||
|
fl_set_input(dialog_->url, params.getContents().c_str());
|
||||||
|
fl_set_input(dialog_->name, params.getOptions().c_str());
|
||||||
|
|
||||||
|
if ( params.getCmdName() == "url" )
|
||||||
|
fl_set_button(dialog_->radio_html, 0);
|
||||||
|
else
|
||||||
|
fl_set_button(dialog_->radio_html, 1);
|
||||||
|
|
||||||
|
if( lv_->buffer()->isReadonly() ) {
|
||||||
|
fl_deactivate_object( dialog_->url );
|
||||||
|
fl_deactivate_object( dialog_->name );
|
||||||
|
fl_deactivate_object( dialog_->radio_html );
|
||||||
|
fl_deactivate_object( dialog_->ok );
|
||||||
|
fl_set_object_lcol( dialog_->ok, FL_INACTIVE );
|
||||||
|
} else {
|
||||||
|
fl_activate_object( dialog_->url );
|
||||||
|
fl_activate_object( dialog_->name );
|
||||||
|
fl_activate_object( dialog_->radio_html );
|
||||||
|
fl_activate_object( dialog_->ok );
|
||||||
|
fl_set_object_lcol( dialog_->ok, FL_BLACK );
|
||||||
|
}
|
||||||
|
|
||||||
|
fl_unfreeze_form( dialog_->form_url );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::apply()
|
void FormUrl::apply()
|
||||||
{
|
{
|
||||||
if( lv_->buffer()->isReadonly() ) return;
|
if( lv_->buffer()->isReadonly() ) return;
|
||||||
|
|
||||||
params->setContents( fl_get_input(dialog_->url) );
|
params.setContents( fl_get_input(dialog_->url) );
|
||||||
params->setOptions( fl_get_input(dialog_->name) );
|
params.setOptions( fl_get_input(dialog_->name) );
|
||||||
|
|
||||||
if (fl_get_button(dialog_->radio_html))
|
if (fl_get_button(dialog_->radio_html))
|
||||||
params->setCmdName("htmlurl");
|
params.setCmdName("htmlurl");
|
||||||
else
|
else
|
||||||
params->setCmdName("url");
|
params.setCmdName("url");
|
||||||
|
|
||||||
if( inset_ != 0 )
|
if( inset_ != 0 )
|
||||||
{
|
{
|
||||||
inset_->setParams( *params );
|
// Only update if contents have changed
|
||||||
|
if( params.getCmdName() != inset_->getCmdName() ||
|
||||||
|
params.getContents() != inset_->getContents() ||
|
||||||
|
params.getOptions() != inset_->getOptions() ) {
|
||||||
|
inset_->setParams( params );
|
||||||
lv_->view()->updateInset( inset_, true );
|
lv_->view()->updateInset( inset_, true );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
lv_->getLyXFunc()->Dispatch( LFUN_INSERT_URL,
|
lv_->getLyXFunc()->Dispatch( LFUN_INSERT_URL,
|
||||||
params->getAsString().c_str() );
|
params.getAsString().c_str() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::hide()
|
|
||||||
{
|
|
||||||
if (dialog_
|
|
||||||
&& dialog_->form_url
|
|
||||||
&& dialog_->form_url->visible) {
|
|
||||||
fl_hide_form(dialog_->form_url);
|
|
||||||
u_.disconnect();
|
|
||||||
h_.disconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
// free up the dialog for another inset
|
|
||||||
inset_ = 0;
|
|
||||||
ih_.disconnect();
|
|
||||||
dialogIsOpen = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::free()
|
|
||||||
{
|
|
||||||
// we don't need to delete u and h here because
|
|
||||||
// hide() does that after disconnecting.
|
|
||||||
if (dialog_) {
|
|
||||||
if (dialog_->form_url
|
|
||||||
&& dialog_->form_url->visible) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
fl_free_form(dialog_->form_url);
|
|
||||||
delete dialog_;
|
|
||||||
dialog_ = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int FormUrl::WMHideCB(FL_FORM * form, void *)
|
|
||||||
{
|
|
||||||
// Ensure that the signals (u and h) are disconnected even if the
|
|
||||||
// window manager is used to close the dialog.
|
|
||||||
FormUrl * pre = static_cast<FormUrl*>(form->u_vdata);
|
|
||||||
pre->hide();
|
|
||||||
return FL_CANCEL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::OKCB(FL_OBJECT * ob, long)
|
|
||||||
{
|
|
||||||
FormUrl * pre = static_cast<FormUrl*>(ob->form->u_vdata);
|
|
||||||
pre->apply();
|
|
||||||
pre->hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void FormUrl::CancelCB(FL_OBJECT * ob, long)
|
|
||||||
{
|
|
||||||
FormUrl * pre = static_cast<FormUrl*>(ob->form->u_vdata);
|
|
||||||
pre->hide();
|
|
||||||
}
|
|
||||||
|
@ -12,24 +12,16 @@
|
|||||||
#ifndef FORMURL_H
|
#ifndef FORMURL_H
|
||||||
#define FORMURL_H
|
#define FORMURL_H
|
||||||
|
|
||||||
#include "DialogBase.h"
|
|
||||||
#include "LString.h"
|
|
||||||
|
|
||||||
#include "support/utility.hpp"
|
|
||||||
|
|
||||||
class Dialogs;
|
|
||||||
class LyXView;
|
|
||||||
class InsetCommandParams;
|
|
||||||
class InsetUrl;
|
|
||||||
struct FD_form_url;
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "FormCommand.h"
|
||||||
|
struct FD_form_url;
|
||||||
|
|
||||||
/** This class provides an XForms implementation of the FormUrl Dialog.
|
/** This class provides an XForms implementation of the FormUrl Dialog.
|
||||||
*/
|
*/
|
||||||
class FormUrl : public DialogBase, public noncopyable {
|
class FormUrl : public FormCommand, public noncopyable {
|
||||||
public:
|
public:
|
||||||
/**@name Constructors and Destructors */
|
/**@name Constructors and Destructors */
|
||||||
//@{
|
//@{
|
||||||
@ -39,66 +31,25 @@ public:
|
|||||||
~FormUrl();
|
~FormUrl();
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**@name Real per-instance Callback Methods */
|
|
||||||
//@{
|
|
||||||
static int WMHideCB(FL_FORM *, void *);
|
|
||||||
static void OKCB(FL_OBJECT *, long);
|
|
||||||
static void CancelCB(FL_OBJECT *, long);
|
|
||||||
//@}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**@name Slot Methods */
|
/**@name Slot Methods */
|
||||||
//@{
|
//@{
|
||||||
/// Create the dialog if necessary, update it and display it.
|
|
||||||
void createInset( string const & );
|
|
||||||
///
|
///
|
||||||
void showInset( InsetUrl * );
|
virtual void update();
|
||||||
///
|
|
||||||
void show();
|
|
||||||
/// Hide the dialog.
|
|
||||||
void hide();
|
|
||||||
///
|
|
||||||
void update();
|
|
||||||
//@}
|
|
||||||
|
|
||||||
/**@name Dialog internal methods */
|
|
||||||
//@{
|
|
||||||
/// Apply from dialog
|
/// Apply from dialog
|
||||||
void apply();
|
void apply();
|
||||||
|
///
|
||||||
|
virtual void input( long ) {};
|
||||||
/// Build the dialog
|
/// Build the dialog
|
||||||
void build();
|
void build();
|
||||||
///
|
///
|
||||||
|
virtual FL_FORM * const form() const;
|
||||||
|
///
|
||||||
FD_form_url * build_url();
|
FD_form_url * build_url();
|
||||||
/// Explicitly free the dialog.
|
|
||||||
void free();
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/**@name Private Data */
|
|
||||||
//@{
|
|
||||||
/// Real GUI implementation.
|
/// Real GUI implementation.
|
||||||
FD_form_url * dialog_;
|
FD_form_url * dialog_;
|
||||||
/** Which LyXFunc do we use?
|
|
||||||
We could modify Dialogs to have a visible LyXFunc* instead and
|
|
||||||
save a couple of bytes per dialog.
|
|
||||||
*/
|
|
||||||
LyXView * lv_;
|
|
||||||
/** Which Dialogs do we belong to?
|
|
||||||
Used so we can get at the signals we have to connect to.
|
|
||||||
*/
|
|
||||||
Dialogs * d_;
|
|
||||||
/// Update connection.
|
|
||||||
Connection u_;
|
|
||||||
/// Hide connection.
|
|
||||||
Connection h_;
|
|
||||||
/// inset::hide connection.
|
|
||||||
Connection ih_;
|
|
||||||
///
|
|
||||||
InsetUrl * inset_;
|
|
||||||
///
|
|
||||||
bool dialogIsOpen;
|
|
||||||
///
|
|
||||||
InsetCommandParams * params;
|
|
||||||
//@}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,14 +8,14 @@ Unit of measure: FL_COORD_PIXEL
|
|||||||
|
|
||||||
=============== FORM ===============
|
=============== FORM ===============
|
||||||
Name: form_citation
|
Name: form_citation
|
||||||
Width: 450
|
Width: 430
|
||||||
Height: 780
|
Height: 770
|
||||||
Number of Objects: 13
|
Number of Objects: 13
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_BOX
|
class: FL_BOX
|
||||||
type: UP_BOX
|
type: UP_BOX
|
||||||
box: 0 0 430 780
|
box: 0 0 430 770
|
||||||
boxtype: FL_UP_BOX
|
boxtype: FL_UP_BOX
|
||||||
colors: FL_COL1 FL_COL1
|
colors: FL_COL1 FL_COL1
|
||||||
alignment: FL_ALIGN_CENTER
|
alignment: FL_ALIGN_CENTER
|
||||||
@ -45,7 +45,7 @@ shortcut:
|
|||||||
resize: FL_RESIZE_X
|
resize: FL_RESIZE_X
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: citeBrsr
|
name: citeBrsr
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: CITEBRSR
|
argument: CITEBRSR
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -63,7 +63,7 @@ shortcut:
|
|||||||
resize: FL_RESIZE_X
|
resize: FL_RESIZE_X
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: bibBrsr
|
name: bibBrsr
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: BIBBRSR
|
argument: BIBBRSR
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -81,7 +81,7 @@ shortcut:
|
|||||||
resize: FL_RESIZE_NONE
|
resize: FL_RESIZE_NONE
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: addBtn
|
name: addBtn
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: ADD
|
argument: ADD
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -99,7 +99,7 @@ shortcut:
|
|||||||
resize: FL_RESIZE_NONE
|
resize: FL_RESIZE_NONE
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: delBtn
|
name: delBtn
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: DELETE
|
argument: DELETE
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -117,7 +117,7 @@ shortcut:
|
|||||||
resize: FL_RESIZE_NONE
|
resize: FL_RESIZE_NONE
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: upBtn
|
name: upBtn
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: UP
|
argument: UP
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -135,13 +135,13 @@ shortcut:
|
|||||||
resize: FL_RESIZE_NONE
|
resize: FL_RESIZE_NONE
|
||||||
gravity: FL_NoGravity FL_NoGravity
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
name: downBtn
|
name: downBtn
|
||||||
callback: C_FormCitationInputCB
|
callback: C_FormCommandInputCB
|
||||||
argument: DOWN
|
argument: DOWN
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_BROWSER
|
class: FL_BROWSER
|
||||||
type: NORMAL_BROWSER
|
type: NORMAL_BROWSER
|
||||||
box: 10 440 430 110
|
box: 10 440 410 110
|
||||||
boxtype: FL_DOWN_BOX
|
boxtype: FL_DOWN_BOX
|
||||||
colors: FL_COL1 FL_YELLOW
|
colors: FL_COL1 FL_YELLOW
|
||||||
alignment: FL_ALIGN_TOP_LEFT
|
alignment: FL_ALIGN_TOP_LEFT
|
||||||
@ -225,7 +225,7 @@ shortcut: ^M
|
|||||||
resize: FL_RESIZE_ALL
|
resize: FL_RESIZE_ALL
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
name: ok
|
name: ok
|
||||||
callback: C_FormCitationOKCB
|
callback: C_FormCommandOKCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -243,7 +243,7 @@ shortcut: ^[
|
|||||||
resize: FL_RESIZE_ALL
|
resize: FL_RESIZE_ALL
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
name: cancel
|
name: cancel
|
||||||
callback: C_FormCitationCancelCB
|
callback: C_FormCommandCancelCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
==============================
|
==============================
|
||||||
|
106
src/frontends/xforms/forms/form_toc.fd
Normal file
106
src/frontends/xforms/forms/form_toc.fd
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
Magic: 13000
|
||||||
|
|
||||||
|
Internal Form Definition File
|
||||||
|
(do not change)
|
||||||
|
|
||||||
|
Number of forms: 1
|
||||||
|
Unit of measure: FL_COORD_PIXEL
|
||||||
|
|
||||||
|
=============== FORM ===============
|
||||||
|
Name: form_toc
|
||||||
|
Width: 420
|
||||||
|
Height: 340
|
||||||
|
Number of Objects: 5
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_BOX
|
||||||
|
type: UP_BOX
|
||||||
|
box: 0 0 420 340
|
||||||
|
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_BROWSER
|
||||||
|
type: HOLD_BROWSER
|
||||||
|
box: 10 10 400 280
|
||||||
|
boxtype: FL_DOWN_BOX
|
||||||
|
colors: FL_COL1 FL_YELLOW
|
||||||
|
alignment: FL_ALIGN_BOTTOM
|
||||||
|
style: FL_NORMAL_STYLE
|
||||||
|
size: FL_DEFAULT_SIZE
|
||||||
|
lcol: FL_BLACK
|
||||||
|
label:
|
||||||
|
shortcut:
|
||||||
|
resize: FL_RESIZE_ALL
|
||||||
|
gravity: FL_NorthWest FL_SouthEast
|
||||||
|
name: browser
|
||||||
|
callback: C_FormCommandApplyCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_BUTTON
|
||||||
|
type: RETURN_BUTTON
|
||||||
|
box: 310 300 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: Close
|
||||||
|
shortcut: ^M
|
||||||
|
resize: FL_RESIZE_NONE
|
||||||
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
|
name:
|
||||||
|
callback: C_FormCommandCancelCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_BUTTON
|
||||||
|
type: NORMAL_BUTTON
|
||||||
|
box: 200 300 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: Update
|
||||||
|
shortcut: Update|#U#u
|
||||||
|
resize: FL_RESIZE_NONE
|
||||||
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
|
name:
|
||||||
|
callback: C_FormCommandApplyCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_CHOICE
|
||||||
|
type: NORMAL_CHOICE
|
||||||
|
box: 60 300 130 30
|
||||||
|
boxtype: FL_FRAME_BOX
|
||||||
|
colors: FL_COL1 FL_BLACK
|
||||||
|
alignment: FL_ALIGN_LEFT
|
||||||
|
style: FL_NORMAL_STYLE
|
||||||
|
size: FL_DEFAULT_SIZE
|
||||||
|
lcol: FL_BLACK
|
||||||
|
label: Type
|
||||||
|
shortcut: Type|#T#t
|
||||||
|
resize: FL_RESIZE_NONE
|
||||||
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
|
name: type
|
||||||
|
callback: C_FormCommandApplyCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
|
==============================
|
||||||
|
create_the_forms
|
@ -99,7 +99,7 @@ shortcut: ^[
|
|||||||
resize: FL_RESIZE_NONE
|
resize: FL_RESIZE_NONE
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
name: cancel
|
name: cancel
|
||||||
callback: C_FormUrlCancelCB
|
callback: C_FormCommandCancelCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
@ -117,7 +117,7 @@ shortcut: ^M
|
|||||||
resize: FL_RESIZE_ALL
|
resize: FL_RESIZE_ALL
|
||||||
gravity: FL_SouthEast FL_SouthEast
|
gravity: FL_SouthEast FL_SouthEast
|
||||||
name: ok
|
name: ok
|
||||||
callback: C_FormUrlOKCB
|
callback: C_FormCommandOKCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
==============================
|
==============================
|
||||||
|
@ -25,6 +25,7 @@ SRCS := form_citation.fd \
|
|||||||
form_print.fd \
|
form_print.fd \
|
||||||
form_graphics.fd \
|
form_graphics.fd \
|
||||||
form_tabular.fd \
|
form_tabular.fd \
|
||||||
|
form_toc.fd \
|
||||||
form_url.fd
|
form_url.fd
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,12 +55,6 @@ libinsets_la_SOURCES = \
|
|||||||
insetlatexaccent.h \
|
insetlatexaccent.h \
|
||||||
insetlist.C \
|
insetlist.C \
|
||||||
insetlist.h \
|
insetlist.h \
|
||||||
insetloa.C \
|
|
||||||
insetloa.h \
|
|
||||||
insetlof.C \
|
|
||||||
insetlof.h \
|
|
||||||
insetlot.C \
|
|
||||||
insetlot.h \
|
|
||||||
insetmarginal.h \
|
insetmarginal.h \
|
||||||
insetmarginal.C \
|
insetmarginal.C \
|
||||||
insetminipage.C \
|
insetminipage.C \
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "insetcite.h"
|
#include "insetcite.h"
|
||||||
#include "LyXView.h"
|
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
|
#include "LyXView.h"
|
||||||
#include "frontends/Dialogs.h"
|
#include "frontends/Dialogs.h"
|
||||||
#include "support/lstrings.h"
|
#include "support/lstrings.h"
|
||||||
|
|
||||||
@ -24,11 +24,6 @@ InsetCitation::InsetCitation(InsetCommandParams const & p)
|
|||||||
: InsetCommand(p)
|
: InsetCommand(p)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
InsetCitation::~InsetCitation()
|
|
||||||
{
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
string InsetCitation::getScreenLabel() const
|
string InsetCitation::getScreenLabel() const
|
||||||
{
|
{
|
||||||
string keys(getContents());
|
string keys(getContents());
|
||||||
|
@ -16,11 +16,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "insetcommand.h"
|
#include "insetcommand.h"
|
||||||
#include <sigc++/signal_system.h>
|
|
||||||
|
|
||||||
#ifdef SIGC_CXX_NAMESPACES
|
|
||||||
using SigC::Signal0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Used to insert citations
|
/** Used to insert citations
|
||||||
*/
|
*/
|
||||||
@ -30,8 +25,6 @@ public:
|
|||||||
explicit
|
explicit
|
||||||
InsetCitation(InsetCommandParams const &);
|
InsetCitation(InsetCommandParams const &);
|
||||||
///
|
///
|
||||||
~InsetCitation();
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetCitation(params()); }
|
Inset * Clone() const { return new InsetCitation(params()); }
|
||||||
///
|
///
|
||||||
string getScreenLabel() const;
|
string getScreenLabel() const;
|
||||||
@ -39,8 +32,6 @@ public:
|
|||||||
EDITABLE Editable() const { return IS_EDITABLE; }
|
EDITABLE Editable() const { return IS_EDITABLE; }
|
||||||
///
|
///
|
||||||
void Edit(BufferView *, int, int, unsigned int);
|
void Edit(BufferView *, int, int, unsigned int);
|
||||||
///
|
|
||||||
Signal0<void> hide;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INSET_CITE_H
|
#endif // INSET_CITE_H
|
||||||
|
@ -17,6 +17,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "insetbutton.h"
|
#include "insetbutton.h"
|
||||||
|
#include <sigc++/signal_system.h>
|
||||||
|
|
||||||
|
#ifdef SIGC_CXX_NAMESPACES
|
||||||
|
using SigC::Signal0;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Created by Alejandro 970222
|
// Created by Alejandro 970222
|
||||||
/** Used to insert a LaTeX command automatically
|
/** Used to insert a LaTeX command automatically
|
||||||
@ -73,6 +78,8 @@ public:
|
|||||||
explicit
|
explicit
|
||||||
InsetCommand(InsetCommandParams const &);
|
InsetCommand(InsetCommandParams const &);
|
||||||
///
|
///
|
||||||
|
virtual ~InsetCommand() { hide(); };
|
||||||
|
///
|
||||||
void Write(Buffer const *, std::ostream &) const;
|
void Write(Buffer const *, std::ostream &) const;
|
||||||
|
|
||||||
/// Parse the command.
|
/// Parse the command.
|
||||||
@ -121,6 +128,8 @@ public:
|
|||||||
InsetCommandParams const & params() const { return p_; }
|
InsetCommandParams const & params() const { return p_; }
|
||||||
///
|
///
|
||||||
void setParams(InsetCommandParams const &);
|
void setParams(InsetCommandParams const &);
|
||||||
|
///
|
||||||
|
Signal0<void> hide;
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
InsetCommandParams p_;
|
InsetCommandParams p_;
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of*
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1996-2000 The LyX Team.
|
|
||||||
*
|
|
||||||
* ====================================================== */
|
|
||||||
|
|
||||||
// Created by Bernhard 970908
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#include "insetloa.h"
|
|
||||||
#include "LaTeXFeatures.h"
|
|
||||||
#include "BufferView.h"
|
|
||||||
#include "LyXView.h"
|
|
||||||
#include "lyxfunc.h"
|
|
||||||
#include "commandtags.h"
|
|
||||||
|
|
||||||
void InsetLOA::Validate(LaTeXFeatures & features) const
|
|
||||||
{
|
|
||||||
features.algorithm = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
string InsetLOA::getScreenLabel() const
|
|
||||||
{
|
|
||||||
return _("List of Algorithms");
|
|
||||||
}
|
|
||||||
|
|
||||||
void InsetLOA::Edit(BufferView * bv, int, int, unsigned int)
|
|
||||||
{
|
|
||||||
bv->owner()->getLyXFunc()->Dispatch(LFUN_LOAVIEW);
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of*
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1996-2000 the LyX Team.
|
|
||||||
*
|
|
||||||
* ====================================================== */
|
|
||||||
|
|
||||||
#ifndef INSET_LOA_H
|
|
||||||
#define INSET_LOA_H
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "insetcommand.h"
|
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
/** Used to insert table of algorithms
|
|
||||||
*/
|
|
||||||
class InsetLOA : public InsetCommand {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
InsetLOA() : InsetCommand("listofalgorithms") {}
|
|
||||||
///
|
|
||||||
explicit
|
|
||||||
InsetLOA(Buffer * b) : InsetCommand("listofalgorithms"), owner(b) {}
|
|
||||||
///
|
|
||||||
void Validate(LaTeXFeatures & features) const;
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetLOA(owner); }
|
|
||||||
///
|
|
||||||
string getScreenLabel() const;
|
|
||||||
///
|
|
||||||
void Edit(BufferView * bv, int, int, unsigned int);
|
|
||||||
///
|
|
||||||
EDITABLE Editable() const {
|
|
||||||
return IS_EDITABLE; // not yet
|
|
||||||
}
|
|
||||||
///
|
|
||||||
bool display() const { return true; }
|
|
||||||
///
|
|
||||||
Inset::Code LyxCode() const { return Inset::LOA_CODE; }
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
Buffer * owner;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,22 +0,0 @@
|
|||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#include "insetlof.h"
|
|
||||||
#include "BufferView.h"
|
|
||||||
#include "LyXView.h"
|
|
||||||
#include "lyxfunc.h"
|
|
||||||
#include "commandtags.h"
|
|
||||||
|
|
||||||
string InsetLOF::getScreenLabel() const
|
|
||||||
{
|
|
||||||
return _("List of Figures");
|
|
||||||
}
|
|
||||||
|
|
||||||
void InsetLOF::Edit(BufferView * bv, int, int, unsigned int)
|
|
||||||
{
|
|
||||||
bv->owner()->getLyXFunc()->Dispatch(LFUN_LOFVIEW);
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of*
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1996-2000 the LyX Team.
|
|
||||||
*
|
|
||||||
* ====================================================== */
|
|
||||||
|
|
||||||
#ifndef INSET_LOF_H
|
|
||||||
#define INSET_LOF_H
|
|
||||||
|
|
||||||
#include "insetcommand.h"
|
|
||||||
|
|
||||||
// Created by Lgb 970527
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
/** Used to insert table of contents
|
|
||||||
*/
|
|
||||||
class InsetLOF : public InsetCommand {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
InsetLOF() : InsetCommand("listoffigures") {}
|
|
||||||
///
|
|
||||||
explicit
|
|
||||||
InsetLOF(Buffer * b) : InsetCommand("listoffigures"), owner(b) {}
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetLOF(owner); }
|
|
||||||
///
|
|
||||||
string getScreenLabel() const;
|
|
||||||
///
|
|
||||||
void Edit(BufferView * bv, int, int, unsigned int);
|
|
||||||
///
|
|
||||||
EDITABLE Editable() const {
|
|
||||||
return IS_EDITABLE; // Finally!
|
|
||||||
}
|
|
||||||
///
|
|
||||||
bool display() const { return true; }
|
|
||||||
///
|
|
||||||
Inset::Code LyxCode() const { return Inset::LOF_CODE; }
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
Buffer * owner;
|
|
||||||
};
|
|
||||||
#endif
|
|
@ -1,23 +0,0 @@
|
|||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "gettext.h"
|
|
||||||
#include "insetlot.h"
|
|
||||||
#include "BufferView.h"
|
|
||||||
#include "LyXView.h"
|
|
||||||
#include "lyxfunc.h"
|
|
||||||
#include "commandtags.h"
|
|
||||||
|
|
||||||
|
|
||||||
string InsetLOT::getScreenLabel() const
|
|
||||||
{
|
|
||||||
return _("List of Tables");
|
|
||||||
}
|
|
||||||
|
|
||||||
void InsetLOT::Edit(BufferView * bv, int, int, unsigned int)
|
|
||||||
{
|
|
||||||
bv->owner()->getLyXFunc()->Dispatch(LFUN_LOTVIEW);
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of*
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1996-2000 LyX Team
|
|
||||||
*
|
|
||||||
* ====================================================== */
|
|
||||||
|
|
||||||
#ifndef INSET_LOT_H
|
|
||||||
#define INSET_LOT_H
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "insetcommand.h"
|
|
||||||
|
|
||||||
// Created by Lgb 970527
|
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
/** Used to insert table of contents
|
|
||||||
*/
|
|
||||||
class InsetLOT : public InsetCommand {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
InsetLOT() : InsetCommand("listoftables") {}
|
|
||||||
///
|
|
||||||
explicit
|
|
||||||
InsetLOT(Buffer * b) : InsetCommand("listoftables"), owner(b) {}
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetLOT(owner); }
|
|
||||||
///
|
|
||||||
string getScreenLabel() const;
|
|
||||||
///
|
|
||||||
void Edit(BufferView * bv, int, int, unsigned int);
|
|
||||||
///
|
|
||||||
EDITABLE Editable() const {
|
|
||||||
return IS_EDITABLE; // not yet
|
|
||||||
}
|
|
||||||
///
|
|
||||||
bool display() const { return true; }
|
|
||||||
///
|
|
||||||
Inset::Code LyxCode() const { return Inset::LOT_CODE; }
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
Buffer * owner;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -6,28 +6,51 @@
|
|||||||
|
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#include "insettoc.h"
|
#include "insettoc.h"
|
||||||
#include "commandtags.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "lyxfunc.h"
|
|
||||||
#include "LyXView.h"
|
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
|
#include "LyXView.h"
|
||||||
|
#include "frontends/Dialogs.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
using std::ostream;
|
using std::ostream;
|
||||||
|
|
||||||
|
|
||||||
string InsetTOC::getScreenLabel() const
|
string InsetTOC::getScreenLabel() const
|
||||||
{
|
{
|
||||||
|
string cmdname( getCmdName() );
|
||||||
|
if( cmdname == "tableofcontents" )
|
||||||
return _("Table of Contents");
|
return _("Table of Contents");
|
||||||
|
else if( cmdname == "listofalgorithms" )
|
||||||
|
return _("List of Algorithms");
|
||||||
|
else if( cmdname == "listoffigures" )
|
||||||
|
return _("List of Figures");
|
||||||
|
else
|
||||||
|
return _("List of Tables");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Inset::Code InsetTOC::LyxCode() const
|
||||||
|
{
|
||||||
|
string cmdname( getCmdName() );
|
||||||
|
if( cmdname == "tableofcontents" )
|
||||||
|
return Inset::TOC_CODE;
|
||||||
|
else if( cmdname == "listofalgorithms" )
|
||||||
|
return Inset::LOA_CODE;
|
||||||
|
else if( cmdname == "listoffigures" )
|
||||||
|
return Inset::LOF_CODE;
|
||||||
|
else
|
||||||
|
return Inset::LOT_CODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetTOC::Edit(BufferView * bv, int, int, unsigned int)
|
void InsetTOC::Edit(BufferView * bv, int, int, unsigned int)
|
||||||
{
|
{
|
||||||
bv->owner()->getLyXFunc()->Dispatch(LFUN_TOCVIEW);
|
bv->owner()->getDialogs()->showTOC( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int InsetTOC::Linuxdoc(Buffer const *, ostream & os) const
|
int InsetTOC::Linuxdoc(Buffer const *, ostream & os) const
|
||||||
{
|
{
|
||||||
|
if( getCmdName() == "tableofcontents" )
|
||||||
os << "<toc>";
|
os << "<toc>";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -35,6 +58,7 @@ int InsetTOC::Linuxdoc(Buffer const *, ostream & os) const
|
|||||||
|
|
||||||
int InsetTOC::DocBook(Buffer const *, ostream & os) const
|
int InsetTOC::DocBook(Buffer const *, ostream & os) const
|
||||||
{
|
{
|
||||||
|
if( getCmdName() == "tableofcontents" )
|
||||||
os << "<toc></toc>";
|
os << "<toc></toc>";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -18,38 +18,28 @@
|
|||||||
|
|
||||||
#include "insetcommand.h"
|
#include "insetcommand.h"
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
/** Used to insert table of contents
|
/** Used to insert table of contents
|
||||||
*/
|
*/
|
||||||
class InsetTOC : public InsetCommand {
|
class InsetTOC : public InsetCommand {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
InsetTOC() : InsetCommand("tableofcontents") {}
|
InsetTOC(InsetCommandParams const & p) : InsetCommand(p) {}
|
||||||
///
|
///
|
||||||
explicit
|
Inset * Clone() const { return new InsetTOC(params()); }
|
||||||
InsetTOC(Buffer * b) : InsetCommand("tableofcontents"), owner(b) {}
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetTOC(owner); }
|
|
||||||
///
|
///
|
||||||
string getScreenLabel() const;
|
string getScreenLabel() const;
|
||||||
/// On edit, we open the TOC pop-up
|
///
|
||||||
void Edit(BufferView * bv, int, int, unsigned int);
|
void Edit(BufferView * bv, int, int, unsigned int);
|
||||||
///
|
///
|
||||||
EDITABLE Editable() const {
|
EDITABLE Editable() const { return IS_EDITABLE; }
|
||||||
return IS_EDITABLE;
|
|
||||||
}
|
|
||||||
///
|
///
|
||||||
bool display() const { return true; }
|
bool display() const { return true; }
|
||||||
///
|
///
|
||||||
Inset::Code LyxCode() const { return Inset::TOC_CODE; }
|
Inset::Code LyxCode() const;
|
||||||
///
|
///
|
||||||
int Linuxdoc(Buffer const *, std::ostream &) const;
|
int Linuxdoc(Buffer const *, std::ostream &) const;
|
||||||
///
|
///
|
||||||
int DocBook(Buffer const *, std::ostream &) const;
|
int DocBook(Buffer const *, std::ostream &) const;
|
||||||
private:
|
|
||||||
///
|
|
||||||
Buffer * owner;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -19,18 +19,6 @@ InsetUrl::InsetUrl(InsetCommandParams const & p)
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
InsetUrl::~InsetUrl()
|
|
||||||
{
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
char const * InsetUrl::EditMessage() const
|
|
||||||
{
|
|
||||||
return _("Opened Url");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InsetUrl::Edit(BufferView * bv, int, int, unsigned int)
|
void InsetUrl::Edit(BufferView * bv, int, int, unsigned int)
|
||||||
{
|
{
|
||||||
bv->owner()->getDialogs()->showUrl( this );
|
bv->owner()->getDialogs()->showUrl( this );
|
||||||
|
@ -16,14 +16,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "insetcommand.h"
|
#include "insetcommand.h"
|
||||||
#include <sigc++/signal_system.h>
|
|
||||||
|
|
||||||
struct LaTeXFeatures;
|
struct LaTeXFeatures;
|
||||||
|
|
||||||
#ifdef SIGC_CXX_NAMESPACES
|
|
||||||
using SigC::Signal0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** The url inset
|
/** The url inset
|
||||||
*/
|
*/
|
||||||
class InsetUrl : public InsetCommand {
|
class InsetUrl : public InsetCommand {
|
||||||
@ -32,8 +27,6 @@ public:
|
|||||||
explicit
|
explicit
|
||||||
InsetUrl(InsetCommandParams const &);
|
InsetUrl(InsetCommandParams const &);
|
||||||
///
|
///
|
||||||
~InsetUrl();
|
|
||||||
///
|
|
||||||
Inset * Clone() const { return new InsetUrl(params()); }
|
Inset * Clone() const { return new InsetUrl(params()); }
|
||||||
///
|
///
|
||||||
Inset::Code LyxCode() const { return Inset::URL_CODE; }
|
Inset::Code LyxCode() const { return Inset::URL_CODE; }
|
||||||
@ -44,8 +37,6 @@ public:
|
|||||||
///
|
///
|
||||||
EDITABLE Editable() const { return IS_EDITABLE; }
|
EDITABLE Editable() const { return IS_EDITABLE; }
|
||||||
///
|
///
|
||||||
char const * EditMessage() const;
|
|
||||||
///
|
|
||||||
void Edit(BufferView *, int, int, unsigned int);
|
void Edit(BufferView *, int, int, unsigned int);
|
||||||
///
|
///
|
||||||
bool display() const { return false; }
|
bool display() const { return false; }
|
||||||
@ -58,8 +49,6 @@ public:
|
|||||||
int Linuxdoc(Buffer const *, std::ostream &) const;
|
int Linuxdoc(Buffer const *, std::ostream &) const;
|
||||||
///
|
///
|
||||||
int DocBook(Buffer const *, std::ostream &) const;
|
int DocBook(Buffer const *, std::ostream &) const;
|
||||||
///
|
|
||||||
Signal0<void> hide;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
30
src/lyx.C
30
src/lyx.C
@ -112,36 +112,6 @@ FD_form_screen *create_form_form_screen(void)
|
|||||||
}
|
}
|
||||||
/*---------------------------------------*/
|
/*---------------------------------------*/
|
||||||
|
|
||||||
FD_form_toc *create_form_form_toc(void)
|
|
||||||
{
|
|
||||||
FL_OBJECT *obj;
|
|
||||||
FD_form_toc *fdui = (FD_form_toc *) fl_calloc(1, sizeof(FD_form_toc));
|
|
||||||
|
|
||||||
fdui->form_toc = fl_bgn_form(FL_NO_BOX, 420, 340);
|
|
||||||
obj = fl_add_box(FL_UP_BOX, 0, 0, 420, 340, "");
|
|
||||||
fdui->browser_toc = obj = fl_add_browser(FL_HOLD_BROWSER, 10, 10, 400, 280, "");
|
|
||||||
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
|
|
||||||
fl_set_object_callback(obj, TocSelectCB, 0);
|
|
||||||
obj = fl_add_button(FL_RETURN_BUTTON, 310, 300, 100, 30, _("Close"));
|
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
|
||||||
fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
|
|
||||||
fl_set_object_callback(obj, TocCancelCB, 0);
|
|
||||||
obj = fl_add_button(FL_NORMAL_BUTTON, 200, 300, 100, 30, idex(_("Update|Uu#u")));fl_set_button_shortcut(obj, scex(_("Update|Uu#u")), 1);
|
|
||||||
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
|
|
||||||
fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
|
|
||||||
fl_set_object_callback(obj, TocUpdateCB, 0);
|
|
||||||
fdui->toctype = obj = fl_add_choice(FL_NORMAL_CHOICE, 60, 300, 130, 30, idex(_("Type|Tt#t")));fl_set_button_shortcut(obj, scex(_("Type|Tt#t")), 1);
|
|
||||||
fl_set_object_boxtype(obj, FL_FRAME_BOX);
|
|
||||||
fl_set_object_gravity(obj, FL_SouthEast, FL_SouthEast);
|
|
||||||
fl_set_object_callback(obj, TocUpdateCB, 0);
|
|
||||||
fl_end_form();
|
|
||||||
|
|
||||||
//fdui->form_toc->fdui = fdui;
|
|
||||||
|
|
||||||
return fdui;
|
|
||||||
}
|
|
||||||
/*---------------------------------------*/
|
|
||||||
|
|
||||||
FD_form_ref *create_form_form_ref(void)
|
FD_form_ref *create_form_form_ref(void)
|
||||||
{
|
{
|
||||||
FL_OBJECT *obj;
|
FL_OBJECT *obj;
|
||||||
|
16
src/lyx.h
16
src/lyx.h
@ -1,4 +1,4 @@
|
|||||||
/** Header file generated with fdesign on Mon Jun 19 12:55:08 2000.**/
|
/** Header file generated with fdesign on Mon Jul 31 11:17:12 2000.**/
|
||||||
|
|
||||||
#ifndef FD_form_title_h_
|
#ifndef FD_form_title_h_
|
||||||
#define FD_form_title_h_
|
#define FD_form_title_h_
|
||||||
@ -14,10 +14,6 @@ extern "C" void ScreenOKCB(FL_OBJECT *, long);
|
|||||||
extern "C" void ScreenApplyCB(FL_OBJECT *, long);
|
extern "C" void ScreenApplyCB(FL_OBJECT *, long);
|
||||||
extern "C" void ScreenCancelCB(FL_OBJECT *, long);
|
extern "C" void ScreenCancelCB(FL_OBJECT *, long);
|
||||||
|
|
||||||
extern "C" void TocSelectCB(FL_OBJECT *, long);
|
|
||||||
extern "C" void TocCancelCB(FL_OBJECT *, long);
|
|
||||||
extern "C" void TocUpdateCB(FL_OBJECT *, long);
|
|
||||||
|
|
||||||
extern "C" void RefUpdateCB(FL_OBJECT *, long);
|
extern "C" void RefUpdateCB(FL_OBJECT *, long);
|
||||||
extern "C" void RefHideCB(FL_OBJECT *, long);
|
extern "C" void RefHideCB(FL_OBJECT *, long);
|
||||||
extern "C" void RefSelectCB(FL_OBJECT *, long);
|
extern "C" void RefSelectCB(FL_OBJECT *, long);
|
||||||
@ -65,16 +61,6 @@ typedef struct {
|
|||||||
} FD_form_screen;
|
} FD_form_screen;
|
||||||
|
|
||||||
extern FD_form_screen * create_form_form_screen(void);
|
extern FD_form_screen * create_form_form_screen(void);
|
||||||
typedef struct {
|
|
||||||
FL_FORM *form_toc;
|
|
||||||
void *vdata;
|
|
||||||
char *cdata;
|
|
||||||
long ldata;
|
|
||||||
FL_OBJECT *browser_toc;
|
|
||||||
FL_OBJECT *toctype;
|
|
||||||
} FD_form_toc;
|
|
||||||
|
|
||||||
extern FD_form_toc * create_form_form_toc(void);
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
FL_FORM *form_ref;
|
FL_FORM *form_ref;
|
||||||
void *vdata;
|
void *vdata;
|
||||||
|
107
src/lyx_cb.C
107
src/lyx_cb.C
@ -71,7 +71,6 @@ extern FD_form_preamble * fd_form_preamble;
|
|||||||
extern FD_form_table * fd_form_table;
|
extern FD_form_table * fd_form_table;
|
||||||
extern FD_form_figure * fd_form_figure;
|
extern FD_form_figure * fd_form_figure;
|
||||||
extern FD_form_screen * fd_form_screen;
|
extern FD_form_screen * fd_form_screen;
|
||||||
extern FD_form_toc * fd_form_toc;
|
|
||||||
extern FD_form_ref * fd_form_ref;
|
extern FD_form_ref * fd_form_ref;
|
||||||
extern FD_form_bullet * fd_form_bullet;
|
extern FD_form_bullet * fd_form_bullet;
|
||||||
|
|
||||||
@ -1134,26 +1133,6 @@ void InsertAsciiFile(BufferView * bv, string const & f, bool asParagraph)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MenuShowTableOfContents()
|
|
||||||
{
|
|
||||||
static int ow = -1, oh;
|
|
||||||
|
|
||||||
TocUpdateCB(0, 0);
|
|
||||||
if (fd_form_toc->form_toc->visible) {
|
|
||||||
fl_raise_form(fd_form_toc->form_toc);
|
|
||||||
} else {
|
|
||||||
fl_show_form(fd_form_toc->form_toc,
|
|
||||||
FL_PLACE_MOUSE | FL_FREE_SIZE, FL_FULLBORDER,
|
|
||||||
_("Table Of Contents"));
|
|
||||||
if (ow < 0) {
|
|
||||||
ow = fd_form_toc->form_toc->w;
|
|
||||||
oh = fd_form_toc->form_toc->h;
|
|
||||||
}
|
|
||||||
fl_set_form_minsize(fd_form_toc->form_toc, ow, oh);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MenuInsertLabel(char const * arg)
|
void MenuInsertLabel(char const * arg)
|
||||||
{
|
{
|
||||||
string label = arg;
|
string label = arg;
|
||||||
@ -2919,92 +2898,6 @@ void Reconfigure(BufferView * bv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Table of Contents
|
|
||||||
//
|
|
||||||
|
|
||||||
static vector<Buffer::TocItem> toclist;
|
|
||||||
|
|
||||||
|
|
||||||
extern "C" void TocSelectCB(FL_OBJECT * ob, long)
|
|
||||||
{
|
|
||||||
if (!current_view->available())
|
|
||||||
return;
|
|
||||||
|
|
||||||
TocUpdateCB(0, 0);
|
|
||||||
unsigned int choice = fl_get_browser(ob);
|
|
||||||
if (0 < choice && choice - 1 < toclist.size()) {
|
|
||||||
current_view->beforeChange();
|
|
||||||
current_view->text->SetCursor(current_view, toclist[choice-1].par, 0);
|
|
||||||
current_view->text->sel_cursor =
|
|
||||||
current_view->text->cursor;
|
|
||||||
current_view->update(BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
} else {
|
|
||||||
WriteAlert(_("Error"),
|
|
||||||
_("Couldn't find this label"),
|
|
||||||
_("in current document."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
extern "C" void TocCancelCB(FL_OBJECT *, long)
|
|
||||||
{
|
|
||||||
fl_hide_form(fd_form_toc->form_toc);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
extern "C"
|
|
||||||
void TocUpdateCB(FL_OBJECT *, long)
|
|
||||||
{
|
|
||||||
if (!current_view->available()) {
|
|
||||||
toclist.clear();
|
|
||||||
fl_clear_browser(fd_form_toc->browser_toc);
|
|
||||||
fl_add_browser_line(fd_form_toc->browser_toc,
|
|
||||||
_("*** No Document ***"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vector<vector<Buffer::TocItem> > tmp =
|
|
||||||
current_view->buffer()->getTocList();
|
|
||||||
int type = fl_get_choice(fd_form_toc->toctype)-1;
|
|
||||||
//if (toclist == tmp[type])
|
|
||||||
// return;
|
|
||||||
if (toclist.size() == tmp[type].size()) {
|
|
||||||
// Check if all elements are the same.
|
|
||||||
unsigned int i = 0;
|
|
||||||
for (; i < toclist.size(); ++i) {
|
|
||||||
if (toclist[i] != tmp[type][i])
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i >= toclist.size()) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
toclist = tmp[type];
|
|
||||||
|
|
||||||
static Buffer * buffer = 0;
|
|
||||||
int topline = 0;
|
|
||||||
int line = 0;
|
|
||||||
if (buffer == current_view->buffer()) {
|
|
||||||
topline = fl_get_browser_topline(fd_form_toc->browser_toc);
|
|
||||||
line = fl_get_browser(fd_form_toc->browser_toc);
|
|
||||||
} else
|
|
||||||
buffer = current_view->buffer();
|
|
||||||
|
|
||||||
fl_clear_browser(fd_form_toc->browser_toc);
|
|
||||||
fl_hide_object(fd_form_toc->browser_toc);
|
|
||||||
|
|
||||||
for (vector<Buffer::TocItem>::const_iterator it = toclist.begin();
|
|
||||||
it != toclist.end(); ++it)
|
|
||||||
fl_add_browser_line(fd_form_toc->browser_toc,
|
|
||||||
(string(4*(*it).depth,' ')+
|
|
||||||
(*it).str).c_str());
|
|
||||||
|
|
||||||
fl_set_browser_topline(fd_form_toc->browser_toc, topline);
|
|
||||||
fl_select_browser_line(fd_form_toc->browser_toc, line);
|
|
||||||
fl_show_object(fd_form_toc->browser_toc);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* callbacks for form form_ref */
|
/* callbacks for form form_ref */
|
||||||
extern "C" void RefSelectCB(FL_OBJECT *, long data)
|
extern "C" void RefSelectCB(FL_OBJECT *, long data)
|
||||||
{
|
{
|
||||||
|
@ -64,7 +64,6 @@ FD_form_table * fd_form_table;
|
|||||||
FD_form_sendto * fd_form_sendto;
|
FD_form_sendto * fd_form_sendto;
|
||||||
FD_form_figure * fd_form_figure;
|
FD_form_figure * fd_form_figure;
|
||||||
FD_form_screen * fd_form_screen;
|
FD_form_screen * fd_form_screen;
|
||||||
FD_form_toc * fd_form_toc;
|
|
||||||
FD_form_ref * fd_form_ref;
|
FD_form_ref * fd_form_ref;
|
||||||
FD_LaTeXLog * fd_latex_log; // from log_form.h
|
FD_LaTeXLog * fd_latex_log; // from log_form.h
|
||||||
Combox * combo_language;
|
Combox * combo_language;
|
||||||
@ -532,12 +531,6 @@ void LyXGUI::create_forms()
|
|||||||
fl_set_form_atclose(fd_form_screen->form_screen,
|
fl_set_form_atclose(fd_form_screen->form_screen,
|
||||||
CancelCloseBoxCB, 0);
|
CancelCloseBoxCB, 0);
|
||||||
|
|
||||||
// the toc form
|
|
||||||
fd_form_toc = create_form_form_toc();
|
|
||||||
fl_addto_choice(fd_form_toc->toctype,
|
|
||||||
_(" TOC | LOF | LOT | LOA "));
|
|
||||||
fl_set_form_atclose(fd_form_toc->form_toc, CancelCloseBoxCB, 0);
|
|
||||||
|
|
||||||
// the ref form
|
// the ref form
|
||||||
fd_form_ref = create_form_form_ref();
|
fd_form_ref = create_form_form_ref();
|
||||||
fl_set_form_atclose(fd_form_ref->form_ref, CancelCloseBoxCB, 0);
|
fl_set_form_atclose(fd_form_ref->form_ref, CancelCloseBoxCB, 0);
|
||||||
|
@ -54,7 +54,6 @@ extern FD_form_preamble * fd_form_preamble;
|
|||||||
extern FD_form_table * fd_form_table;
|
extern FD_form_table * fd_form_table;
|
||||||
extern FD_form_sendto * fd_form_sendto;
|
extern FD_form_sendto * fd_form_sendto;
|
||||||
extern FD_form_figure * fd_form_figure;
|
extern FD_form_figure * fd_form_figure;
|
||||||
extern FD_form_toc * fd_form_toc;
|
|
||||||
extern FD_form_ref * fd_form_ref;
|
extern FD_form_ref * fd_form_ref;
|
||||||
extern FD_form_paragraph_extra * fd_form_paragraph_extra;
|
extern FD_form_paragraph_extra * fd_form_paragraph_extra;
|
||||||
extern FD_LaTeXLog * fd_latex_log;
|
extern FD_LaTeXLog * fd_latex_log;
|
||||||
@ -69,7 +68,6 @@ extern FD_bibitem_form * bibitem_form;
|
|||||||
extern FD_include * form;
|
extern FD_include * form;
|
||||||
extern FD_index_form * index_form;
|
extern FD_index_form * index_form;
|
||||||
|
|
||||||
extern void TocUpdateCB();
|
|
||||||
extern void HideFiguresPopups();
|
extern void HideFiguresPopups();
|
||||||
|
|
||||||
// Prevents LyX from being killed when the close box is pressed in a popup.
|
// Prevents LyX from being killed when the close box is pressed in a popup.
|
||||||
@ -120,9 +118,6 @@ void CloseAllBufferRelatedDialogs()
|
|||||||
if (fd_form_figure->form_figure->visible) {
|
if (fd_form_figure->form_figure->visible) {
|
||||||
fl_hide_form(fd_form_figure->form_figure);
|
fl_hide_form(fd_form_figure->form_figure);
|
||||||
}
|
}
|
||||||
if (fd_form_toc->form_toc->visible) {
|
|
||||||
fl_hide_form(fd_form_toc->form_toc);
|
|
||||||
}
|
|
||||||
if (fd_form_ref->form_ref->visible) {
|
if (fd_form_ref->form_ref->visible) {
|
||||||
fl_hide_form(fd_form_ref->form_ref);
|
fl_hide_form(fd_form_ref->form_ref);
|
||||||
}
|
}
|
||||||
@ -221,9 +216,6 @@ void updateAllVisibleBufferRelatedDialogs()
|
|||||||
updateBulletForm();
|
updateBulletForm();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fd_form_toc->browser_toc->visible) {
|
|
||||||
TocUpdateCB(0, 0);
|
|
||||||
}
|
|
||||||
if (fd_latex_log->LaTeXLog->visible) {
|
if (fd_latex_log->LaTeXLog->visible) {
|
||||||
LatexLogUpdate(0,0);
|
LatexLogUpdate(0,0);
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <csignal>
|
#include <csignal>
|
||||||
|
|
||||||
#include "LString.h"
|
#include "LString.h"
|
||||||
|
#include "support/utility.hpp"
|
||||||
|
|
||||||
class LyXGUI;
|
class LyXGUI;
|
||||||
class LyXRC;
|
class LyXRC;
|
||||||
@ -40,7 +41,7 @@ extern LastFiles * lastfiles; /* we should hopefully be able to move this
|
|||||||
/**
|
/**
|
||||||
This is the main LyX object it encapsulates most of the other objects.
|
This is the main LyX object it encapsulates most of the other objects.
|
||||||
*/
|
*/
|
||||||
class LyX {
|
class LyX : public noncopyable {
|
||||||
public:
|
public:
|
||||||
/**@name Constructors and Deconstructors */
|
/**@name Constructors and Deconstructors */
|
||||||
//@{
|
//@{
|
||||||
@ -56,22 +57,12 @@ public:
|
|||||||
LyXGUI * lyxGUI; // should be only one of this
|
LyXGUI * lyxGUI; // should be only one of this
|
||||||
//@}
|
//@}
|
||||||
private:
|
private:
|
||||||
/**@name Constructors and Deconstructors */
|
|
||||||
//@{
|
|
||||||
/// not allowed
|
|
||||||
LyX(const LyX &) {} // not allowed
|
|
||||||
/// not allowed
|
|
||||||
LyX() {} // not allowed
|
|
||||||
//@}
|
|
||||||
|
|
||||||
/**@name Private variables */
|
/**@name Private variables */
|
||||||
//@{
|
//@{
|
||||||
/// does this user start lyx for the first time?
|
/// does this user start lyx for the first time?
|
||||||
bool first_start;
|
bool first_start;
|
||||||
///
|
///
|
||||||
string batch_command;
|
string batch_command;
|
||||||
///
|
|
||||||
// struct sigaction act_; // seems to be unused
|
|
||||||
//@}
|
//@}
|
||||||
/**@name Private Members */
|
/**@name Private Members */
|
||||||
//@{
|
//@{
|
||||||
|
@ -43,9 +43,6 @@ using std::istringstream;
|
|||||||
#include "insets/inseturl.h"
|
#include "insets/inseturl.h"
|
||||||
#include "insets/insetlatexaccent.h"
|
#include "insets/insetlatexaccent.h"
|
||||||
#include "insets/insettoc.h"
|
#include "insets/insettoc.h"
|
||||||
#include "insets/insetlof.h"
|
|
||||||
#include "insets/insetloa.h"
|
|
||||||
#include "insets/insetlot.h"
|
|
||||||
#include "insets/insetref.h"
|
#include "insets/insetref.h"
|
||||||
#include "insets/insetparent.h"
|
#include "insets/insetparent.h"
|
||||||
#include "insets/insetindex.h"
|
#include "insets/insetindex.h"
|
||||||
@ -107,7 +104,6 @@ extern bool math_insert_greek(char);
|
|||||||
extern BufferList bufferlist;
|
extern BufferList bufferlist;
|
||||||
extern LyXServer * lyxserver;
|
extern LyXServer * lyxserver;
|
||||||
extern int greek_kb_flag;
|
extern int greek_kb_flag;
|
||||||
extern FD_form_toc * fd_form_toc;
|
|
||||||
extern bool selection_possible;
|
extern bool selection_possible;
|
||||||
|
|
||||||
extern kb_keymap * toplevel_keymap;
|
extern kb_keymap * toplevel_keymap;
|
||||||
@ -888,60 +884,40 @@ string LyXFunc::Dispatch(int ac,
|
|||||||
case LFUN_LOTVIEW:
|
case LFUN_LOTVIEW:
|
||||||
case LFUN_LOAVIEW:
|
case LFUN_LOAVIEW:
|
||||||
{
|
{
|
||||||
Buffer::TocType type = Buffer::TOC_TOC;
|
InsetCommandParams p;
|
||||||
if (action == LFUN_LOFVIEW)
|
|
||||||
type = Buffer::TOC_LOF;
|
if( action == LFUN_TOCVIEW )
|
||||||
else if (action == LFUN_LOTVIEW)
|
p.setCmdName( "tableofcontents" );
|
||||||
type = Buffer::TOC_LOT;
|
|
||||||
else if( action == LFUN_LOAVIEW )
|
else if( action == LFUN_LOAVIEW )
|
||||||
type = Buffer::TOC_LOA;
|
p.setCmdName( "listofalgorithms" );
|
||||||
fl_set_choice(fd_form_toc->toctype,type + 1);
|
else if( action == LFUN_LOFVIEW )
|
||||||
TocUpdateCB(0, 0);
|
p.setCmdName( "listoffigures" );
|
||||||
if (fd_form_toc->form_toc->visible) {
|
else
|
||||||
fl_raise_form(fd_form_toc->form_toc);
|
p.setCmdName( "listoftables" );
|
||||||
} else {
|
|
||||||
static int ow = -1, oh;
|
owner->getDialogs()->createTOC( p.getAsString() );
|
||||||
fl_show_form(fd_form_toc->form_toc,
|
|
||||||
FL_PLACE_MOUSE |
|
|
||||||
FL_FREE_SIZE, FL_FULLBORDER,
|
|
||||||
_("Table of Contents"));
|
|
||||||
if (ow < 0) {
|
|
||||||
ow = fd_form_toc->form_toc->w;
|
|
||||||
oh = fd_form_toc->form_toc->h;
|
|
||||||
}
|
|
||||||
fl_set_form_minsize(fd_form_toc->form_toc, ow, oh);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_TOC_INSERT:
|
case LFUN_TOC_INSERT:
|
||||||
{
|
|
||||||
Inset * new_inset = new InsetTOC(owner->buffer());
|
|
||||||
if (!owner->view()->insertInset(new_inset, "Standard", true))
|
|
||||||
delete new_inset;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_LOF_INSERT:
|
|
||||||
{
|
|
||||||
Inset * new_inset = new InsetLOF(owner->buffer());
|
|
||||||
if (!owner->view()->insertInset(new_inset, "Standard", true))
|
|
||||||
delete new_inset;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_LOA_INSERT:
|
case LFUN_LOA_INSERT:
|
||||||
{
|
case LFUN_LOF_INSERT:
|
||||||
Inset * new_inset = new InsetLOA(owner->buffer());
|
|
||||||
if (!owner->view()->insertInset(new_inset, "Standard", true))
|
|
||||||
delete new_inset;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_LOT_INSERT:
|
case LFUN_LOT_INSERT:
|
||||||
{
|
{
|
||||||
Inset * new_inset = new InsetLOT(owner->buffer());
|
InsetCommandParams p;
|
||||||
if (!owner->view()->insertInset(new_inset, "Standard", true))
|
|
||||||
delete new_inset;
|
if( action == LFUN_TOC_INSERT )
|
||||||
|
p.setCmdName( "tableofcontents" );
|
||||||
|
else if( action == LFUN_LOA_INSERT )
|
||||||
|
p.setCmdName( "listofalgorithms" );
|
||||||
|
else if( action == LFUN_LOF_INSERT )
|
||||||
|
p.setCmdName( "listoffigures" );
|
||||||
|
else
|
||||||
|
p.setCmdName( "listoftables" );
|
||||||
|
|
||||||
|
Inset * inset = new InsetTOC( p );
|
||||||
|
if( !owner->view()->insertInset( inset, "Standard", true ) )
|
||||||
|
delete inset;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2564,7 +2540,18 @@ string LyXFunc::Dispatch(int ac,
|
|||||||
|
|
||||||
case LFUN_CREATE_CITATION:
|
case LFUN_CREATE_CITATION:
|
||||||
{
|
{
|
||||||
owner->getDialogs()->createCitation( argument );
|
// Should do this "at source"
|
||||||
|
InsetCommandParams p;
|
||||||
|
p.setCmdName( "cite" );
|
||||||
|
|
||||||
|
if (contains(argument, "|")) {
|
||||||
|
p.setContents( token(argument, '|', 0) );
|
||||||
|
p.setOptions( token(argument, '|', 1) );
|
||||||
|
} else {
|
||||||
|
p.setContents( argument );
|
||||||
|
}
|
||||||
|
|
||||||
|
owner->getDialogs()->createCitation( p.getAsString() );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -12,6 +8,10 @@
|
|||||||
#include "lyxregex.h"
|
#include "lyxregex.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "LRegex.h"
|
#include "LRegex.h"
|
||||||
|
|
||||||
using std::make_pair;
|
using std::make_pair;
|
||||||
@ -55,7 +55,7 @@ struct LRegex::Impl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
LRegex::MatchPair first_match(string const & str) const
|
LRegex::MatchPair const first_match(string const & str) const
|
||||||
{
|
{
|
||||||
regmatch_t tmp;
|
regmatch_t tmp;
|
||||||
regexec(preg, str.c_str(), 1, &tmp, 0);
|
regexec(preg, str.c_str(), 1, &tmp, 0);
|
||||||
@ -67,7 +67,7 @@ struct LRegex::Impl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
string getError() const
|
string const getError() const
|
||||||
{
|
{
|
||||||
size_t nr = regerror(error_code, preg, 0, 0);
|
size_t nr = regerror(error_code, preg, 0, 0);
|
||||||
char * tmp = new char[nr];
|
char * tmp = new char[nr];
|
||||||
@ -134,13 +134,13 @@ bool LRegex::exact_match(string const & str) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LRegex::MatchPair LRegex::first_match(string const & str) const
|
LRegex::MatchPair const LRegex::first_match(string const & str) const
|
||||||
{
|
{
|
||||||
return impl->first_match(str);
|
return impl->first_match(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string LRegex::getError() const
|
string const LRegex::getError() const
|
||||||
{
|
{
|
||||||
return impl->getError();
|
return impl->getError();
|
||||||
}
|
}
|
||||||
|
@ -38,10 +38,10 @@ public:
|
|||||||
bool exact_match(string const & str) const;
|
bool exact_match(string const & str) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
MatchPair first_match(string const & str) const;
|
MatchPair const first_match(string const & str) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
string getError() const;
|
string const getError() const;
|
||||||
|
|
||||||
///
|
///
|
||||||
int getErrorCode() const;
|
int getErrorCode() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user