From 474b65cd25930b5745dc7aca27f346cd5766ddd9 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Wed, 7 Jun 2000 08:53:40 +0000 Subject: [PATCH] New citation popup from Angus git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@800 a592a061-630c-0410-9148-cb99ea01b6c8 --- ChangeLog | 12 + forms/bibforms.fd | 96 ------- forms/cite.fd | 250 +++++++++++++++++ forms/makefile | 6 +- po/ChangeLog | 4 + po/fr.po | 559 +++++++++++++++++++------------------- src/bibforms.h | 15 +- src/bmtable.c | 4 +- src/buffer.C | 37 ++- src/buffer.h | 2 +- src/insets/Makefile.am | 2 + src/insets/insetbib.C | 221 +++------------ src/insets/insetbib.h | 41 +-- src/insets/insetcite.C | 483 ++++++++++++++++++++++++++++++++ src/insets/insetcite.h | 82 ++++++ src/insets/insetcommand.C | 38 +-- src/insets/insetcommand.h | 14 +- src/insets/insetinclude.C | 31 ++- src/insets/insetinclude.h | 2 +- src/insets/insetindex.h | 2 +- src/insets/insetlabel.C | 11 +- src/lyx_gui_misc.C | 8 +- src/lyxfunc.C | 1 + src/paragraph.C | 7 +- src/text.C | 3 - 25 files changed, 1257 insertions(+), 674 deletions(-) create mode 100644 forms/cite.fd create mode 100644 src/insets/insetcite.C create mode 100644 src/insets/insetcite.h diff --git a/ChangeLog b/ChangeLog index f170a67a82..7ee0ccc3fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2000-06-06 Angus Leeming + + * forms/cite.fd: new citation dialog + + * src/insetcite.[Ch]: the new citation dialog is moved into + its own files. + + * src/insetbib.C: InsetBibtex::getKeys() uses STL containers + (Dekel). + + * src/insets/insetcommand.h: data members made private. + 2000-06-06 Lars Gullik Bjønnes * LyX 1.1.5 released diff --git a/forms/bibforms.fd b/forms/bibforms.fd index d49de0882f..289c592d3e 100644 --- a/forms/bibforms.fd +++ b/forms/bibforms.fd @@ -6,102 +6,6 @@ Internal Form Definition File Number of forms: 2 Unit of measure: FL_COORD_PIXEL -=============== FORM =============== -Name: citation_form -Width: 220 -Height: 130 -Number of Objects: 5 - --------------------- -class: FL_BOX -type: UP_BOX -box: 0 0 220 130 -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_INPUT -type: NORMAL_INPUT -box: 80 10 130 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Key:|#K -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: key -callback: -argument: - --------------------- -class: FL_BUTTON -type: RETURN_BUTTON -box: 20 90 90 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: OK -shortcut: ^M -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: bibitem_cb -argument: 1 - --------------------- -class: FL_BUTTON -type: NORMAL_BUTTON -box: 120 90 90 30 -boxtype: FL_UP_BOX -colors: FL_COL1 FL_COL1 -alignment: FL_ALIGN_CENTER -style: FL_NORMAL_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Cancel|^[ -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: -callback: bibitem_cb -argument: 0 - --------------------- -class: FL_INPUT -type: NORMAL_INPUT -box: 80 50 130 30 -boxtype: FL_DOWN_BOX -colors: FL_COL1 FL_MCOL -alignment: FL_ALIGN_LEFT -style: FL_NORMAL_STYLE -size: FL_NORMAL_SIZE -lcol: FL_BLACK -label: Remark:|#R -shortcut: -resize: FL_RESIZE_ALL -gravity: FL_NoGravity FL_NoGravity -name: label -callback: -argument: - =============== FORM =============== Name: bibitem_form Width: 220 diff --git a/forms/cite.fd b/forms/cite.fd new file mode 100644 index 0000000000..e547a6dce9 --- /dev/null +++ b/forms/cite.fd @@ -0,0 +1,250 @@ +Magic: 13000 + +Internal Form Definition File + (do not change) + +Number of forms: 1 +Unit of measure: FL_COORD_PIXEL + +=============== FORM =============== +Name: citation_form +Width: 440 +Height: 790 +Number of Objects: 13 + +-------------------- +class: FL_BOX +type: UP_BOX +box: 0 0 440 790 +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: 20 40 170 370 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Inset keys +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BROWSER +type: HOLD_BROWSER +box: 250 40 170 370 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Bibliography keys +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 200 40 40 40 +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: @4-> +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 200 90 40 40 +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: @9+ +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 200 140 40 40 +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: @8-> +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 200 190 40 40 +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: @2-> +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BROWSER +type: NORMAL_BROWSER +box: 20 440 400 110 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_YELLOW +alignment: FL_ALIGN_TOP_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Info +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_CHOICE +type: NORMAL_CHOICE +box: 160 570 130 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_BLACK +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Citation style +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_INPUT +type: NORMAL_INPUT +box: 100 620 250 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Text before +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_INPUT +type: NORMAL_INPUT +box: 100 660 250 30 +boxtype: FL_DOWN_BOX +colors: FL_COL1 FL_MCOL +alignment: FL_ALIGN_LEFT +style: FL_NORMAL_STYLE +size: FL_DEFAULT_SIZE +lcol: FL_BLACK +label: Text after +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: RETURN_BUTTON +box: 190 730 110 40 +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: OK +shortcut: ^M +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +-------------------- +class: FL_BUTTON +type: NORMAL_BUTTON +box: 310 730 110 40 +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: Cancel +shortcut: +resize: FL_RESIZE_ALL +gravity: FL_NoGravity FL_NoGravity +name: +callback: +argument: + +============================== +create_the_forms diff --git a/forms/makefile b/forms/makefile index 5863ac8d96..85f06e9cd6 100644 --- a/forms/makefile +++ b/forms/makefile @@ -17,15 +17,15 @@ SHELL = /bin/sh # Various commands FDESIGN = fdesign -SRCS = bullet_forms.fd credits_form.fd form1.fd \ +SRCS = bullet_forms.fd cite.fd credits_form.fd form1.fd \ latexoptions.fd layout_forms.fd lyx.fd lyx_sendfax.fd math_forms.fd \ print_form.fd sp_form.fd -OBJS = bullet_forms.c credits_form.c form1.c \ +OBJS = bullet_forms.c cite.c credits_form.c form1.c \ latexoptions.c layout_forms.c lyx.c lyx_sendfax.c math_forms.c \ print_form.c sp_form.c -COBJS = bullet_forms.C credits_form.C form1.C \ +COBJS = bullet_forms.C cite.C credits_form.C form1.C \ latexoptions.C layout_forms.C lyx.C lyx_sendfax.C math_forms.C \ print_form.C sp_form.C diff --git a/po/ChangeLog b/po/ChangeLog index c69cbd7cbb..dd4fa65344 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +2000-06-06 Jean-Marc Lasgouttes + + * fr.po: update from Emmanuel + 2000-06-06 Lars Gullik Bjønnes * de.po: updated diff --git a/po/fr.po b/po/fr.po index 678421812d..4d47721549 100644 --- a/po/fr.po +++ b/po/fr.po @@ -92,7 +92,7 @@ msgid "" msgstr "" "Project-Id-Version: LyX 1.1.4\n" -"POT-Creation-Date: 2000-06-06 13:45+0200\n" +"POT-Creation-Date: 2000-06-06 05:38+0200\n" "PO-Revision-Date: 2000-03-10 02:56+01:00\n" "Last-Translator: Jean-Pierre Chrétien \n" "Language-Team: lyxfr \n" @@ -254,7 +254,7 @@ msgstr "Erreur ! Impossible d'ouvrir le fichier temporaire : " #: src/BufferView2.C:61 src/BufferView2.C:71 src/buffer.C:3605 #: src/bufferlist.C:411 src/lyx_cb.C:396 src/lyx_cb.C:759 src/lyx_cb.C:785 -#: src/lyx_sendfax_main.C:264 src/menus.C:2130 +#: src/lyx_sendfax_main.C:264 src/menus.C:2119 msgid "Error!" msgstr "Erreur !" @@ -682,6 +682,7 @@ msgstr "" "Copyright LyX 1995 par Matthias Ettrich,\n" "1995-2000 LyX Team" +#Durectement recopié de http://www.linux-france.org/article/these/gpl.html #: src/credits_form.C:55 msgid "" "This program is free software; you can redistribute it\n" @@ -690,10 +691,11 @@ msgid "" "Foundation; either version 2 of the License, or\n" "(at your option) any later version." msgstr "" -"Ce logiciel est un logiciel libre ; vous pouvez le redistribuer\n" -"et/ou le modifier sous les termes de la licence GNU GPL\n" -"telle qu'elle est publiée par la FSF (Fondation pour le logiciel libre),\n" -"soit dans sa version n°2 soit dans une version ultérieure." +"Ce programme est libre, vous pouvez le redistribuer\n" +"et/ou le modifier selon les termes de la\n" +"Licence Publique Générale GNU publiée\n" +"par la Free Software Foundation \n" +"(version 2 ou bien toute autre version ultérieure)." #: src/credits_form.C:64 msgid "" @@ -708,21 +710,32 @@ msgid "" "the Free Software Foundation, Inc.,\n" "675 Mass Ave, Cambridge, MA 02139, USA." msgstr "" +"Ce programme est distribué car potentiellement utile,\n" +"mais SANS AUCUNE GARANTIE, ni explicite ni implicite, \n" +"y compris les garanties de commercialisation ou d'adaptation \n" +"dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU\n" +"pour plus de détails.\n" +"Vous devez avoir reçu une copie de la Licence Publique Générale GNU\n" +" en même temps que ce programme ; si ce n'est pas le cas,\n" +"écrivez à la Free Software Foundation, Inc., 59 Temple Place,\n" +"Suite 330, Boston, MA 02111-1307, États-Unis." + #: src/CutAndPaste.C:391 msgid "Layout had to be changed from\n" -msgstr "" +msgstr "Le style de paragraphe a changé de\n" #: src/CutAndPaste.C:392 src/CutAndPaste.C:395 #, fuzzy msgid " to " -msgstr " de " +msgstr " vers " #: src/CutAndPaste.C:394 msgid "" "\n" "because of class conversion from\n" -msgstr "" +msgstr "\n" +"car la conversion de la classe \n" # à revoir #: src/CutAndPaste.C:422 src/CutAndPaste.C:431 src/insets/insettext.C:1508 @@ -836,9 +849,9 @@ msgstr "Afficher Cadre|#F" msgid "Do Translations|#r" msgstr "Traduire|#r" -#: src/form1.C:129 src/insets/form_graphics.C:73 src/menus.C:197 -#: src/menus.C:208 src/menus.C:345 src/menus.C:346 src/menus.C:347 -#: src/menus.C:420 src/menus.C:421 src/menus.C:422 src/sp_form.C:58 +#: src/form1.C:129 src/insets/form_graphics.C:73 src/menus.C:196 +#: src/menus.C:207 src/menus.C:344 src/menus.C:345 src/menus.C:346 +#: src/menus.C:419 src/menus.C:420 src/menus.C:421 src/sp_form.C:58 msgid "Options" msgstr "Options" @@ -1087,7 +1100,7 @@ msgstr "" msgid "Name" msgstr "Destinataire" -#: src/insets/form_url.C:24 src/lyx.C:175 +#: src/insets/form_url.C:24 src/lyx.C:174 msgid "Name|#N" msgstr "Destinataire|#N" @@ -1229,8 +1242,8 @@ msgstr "Utiliser include|#i" #. launches dialog #: src/insets/insetinclude.C:114 src/lyx_cb.C:248 src/lyxfunc.C:2726 -#: src/lyxfunc.C:2816 src/lyxfunc.C:2876 src/lyxfunc.C:3020 src/menus.C:199 -#: src/menus.C:359 src/menus.C:360 src/menus.C:361 +#: src/lyxfunc.C:2816 src/lyxfunc.C:2876 src/lyxfunc.C:3020 src/menus.C:198 +#: src/menus.C:358 src/menus.C:359 src/menus.C:360 msgid "Documents" msgstr "" @@ -1277,7 +1290,7 @@ msgstr "" msgid "Opened note" msgstr "Insert ouvert" -#: src/insets/insetinfo.C:210 src/insets/insetinfo.C:215 src/lyx.C:159 +#: src/insets/insetinfo.C:210 src/insets/insetinfo.C:215 src/lyx.C:158 msgid "Close|#C^[" msgstr "Fermer|#C^[" @@ -2786,19 +2799,19 @@ msgstr "Mise msgid "Type|Tt#t" msgstr "Type :|#T" -#: src/lyx.C:155 +#: src/lyx.C:154 msgid "Update|#U" msgstr "Mise à jour|#U" -#: src/lyx.C:163 +#: src/lyx.C:162 msgid "Insert Reference|#I^M" msgstr "Insérer référence|#I^M" -#: src/lyx.C:167 +#: src/lyx.C:166 msgid "Insert Page Number|#P" msgstr "Insérer n° de page|#P" -#: src/lyx.C:171 +#: src/lyx.C:170 msgid "Go to Reference|#G" msgstr "Aller à la référence|#A" @@ -2806,19 +2819,19 @@ msgstr "Aller msgid "Sort keys|#S" msgstr "Tri des étiquettes|#S" -#: src/lyx.C:182 +#: src/lyx.C:181 msgid "Insert vReference|#V" msgstr "Insérer vRéférence|#V" -#: src/lyx.C:186 +#: src/lyx.C:185 msgid "Insert vPage Number|#N" msgstr "Insérer n° de vPage|#N" -#: src/lyx.C:190 +#: src/lyx.C:189 msgid "Insert Pretty Ref|#T" msgstr "Insérer Pretty Ref|#P" -#: src/lyx.C:194 +#: src/lyx.C:193 msgid "Go Back|#B" msgstr "" @@ -3692,11 +3705,11 @@ msgstr "Le document est en lecture seule :" #: src/lyx_main.C:85 msgid "Wrong command line option `" -msgstr "" +msgstr "Mauvaise option de ligne de commande" #: src/lyx_main.C:87 msgid "'. Exiting." -msgstr "" +msgstr "'. Sortie du programme." #: src/lyx_main.C:209 msgid "Warning: could not determine path of binary." @@ -4136,86 +4149,86 @@ msgstr "Haut | Centre | Bas" msgid "Math Panel" msgstr "Palette mathématique" -#: src/menus.C:183 src/menus.C:206 src/menus.C:247 src/menus.C:248 -#: src/menus.C:249 src/menus.C:406 src/menus.C:407 src/menus.C:408 +#: src/menus.C:182 src/menus.C:205 src/menus.C:246 src/menus.C:247 +#: src/menus.C:248 src/menus.C:405 src/menus.C:406 src/menus.C:407 msgid "File" msgstr "Fichier" -#: src/menus.C:185 src/menus.C:261 src/menus.C:262 src/menus.C:263 +#: src/menus.C:184 src/menus.C:260 src/menus.C:261 src/menus.C:262 msgid "Edit" msgstr "Éditer" -#: src/menus.C:187 src/menus.C:275 src/menus.C:276 src/menus.C:277 +#: src/menus.C:186 src/menus.C:274 src/menus.C:275 src/menus.C:276 msgid "TOC" msgstr "Plan" -#: src/menus.C:189 src/menus.C:289 src/menus.C:290 src/menus.C:291 +#: src/menus.C:188 src/menus.C:288 src/menus.C:289 src/menus.C:290 msgid "Refs" msgstr "Refs" # revu -#: src/menus.C:191 src/menus.C:303 src/menus.C:304 src/menus.C:305 +#: src/menus.C:190 src/menus.C:302 src/menus.C:303 src/menus.C:304 msgid "Layout" msgstr "Format" -#: src/menus.C:193 src/menus.C:317 src/menus.C:318 src/menus.C:319 +#: src/menus.C:192 src/menus.C:316 src/menus.C:317 src/menus.C:318 msgid "Insert" msgstr "Insérer" -#: src/menus.C:195 src/menus.C:331 src/menus.C:332 src/menus.C:333 +#: src/menus.C:194 src/menus.C:330 src/menus.C:331 src/menus.C:332 msgid "Math" msgstr "Maths" -#: src/menus.C:201 src/menus.C:210 src/menus.C:373 src/menus.C:374 -#: src/menus.C:375 src/menus.C:434 src/menus.C:435 src/menus.C:436 +#: src/menus.C:200 src/menus.C:209 src/menus.C:372 src/menus.C:373 +#: src/menus.C:374 src/menus.C:433 src/menus.C:434 src/menus.C:435 msgid "Help" msgstr "Aide" -#: src/menus.C:251 src/menus.C:410 +#: src/menus.C:250 src/menus.C:409 msgid "MB|#F" msgstr "" -#: src/menus.C:265 +#: src/menus.C:264 msgid "MB|#E" msgstr "" -#: src/menus.C:279 +#: src/menus.C:278 msgid "MB|#T" msgstr "" -#: src/menus.C:293 +#: src/menus.C:292 msgid "MB|#R" msgstr "" -#: src/menus.C:307 +#: src/menus.C:306 msgid "MB|#L" msgstr "MB|#r" -#: src/menus.C:321 +#: src/menus.C:320 msgid "MB|#I" msgstr "" -#: src/menus.C:335 +#: src/menus.C:334 msgid "MB|#M" msgstr "" -#: src/menus.C:349 src/menus.C:424 +#: src/menus.C:348 src/menus.C:423 msgid "MB|#O" msgstr "" -#: src/menus.C:363 +#: src/menus.C:362 msgid "MB|#D" msgstr "" -#: src/menus.C:377 src/menus.C:438 +#: src/menus.C:376 src/menus.C:437 msgid "MB|#H" msgstr "" -#: src/menus.C:480 +#: src/menus.C:479 msgid "Screen Options" msgstr "Options d'affichage" -#: src/menus.C:521 +#: src/menus.C:520 msgid "" "Import%t|LaTeX...%x30|Ascii Text as Lines...%x31|Ascii Text as " "Paragraphs%x32|Noweb%x33|LinuxDoc%x34" @@ -4223,27 +4236,27 @@ msgstr "" "Importer%t|LaTeX...%x30|Texte Ascii en lignes...%x31|Texte Ascii en " "paragraphes%x32|Noweb%x33" -#: src/menus.C:528 src/menus.C:785 +#: src/menus.C:527 src/menus.C:784 msgid "FIM|Ll#l#L" msgstr "FIT|Ll#l#L" -#: src/menus.C:529 src/menus.C:786 +#: src/menus.C:528 src/menus.C:785 msgid "FIM|Aa#a#A" msgstr "FIT|Aa#a#A" -#: src/menus.C:530 src/menus.C:787 +#: src/menus.C:529 src/menus.C:786 msgid "FIM|Pp#p#P" msgstr "FIT|Pp#p#P" -#: src/menus.C:531 src/menus.C:788 +#: src/menus.C:530 src/menus.C:787 msgid "FIM|Nn#n#N" msgstr "FIM|Nn#n#N" -#: src/menus.C:532 src/menus.C:789 +#: src/menus.C:531 src/menus.C:788 msgid "FIM|Dd#d#D" msgstr "FM|Dd#d#D" -#: src/menus.C:541 +#: src/menus.C:540 msgid "" "Export%t|as LaTeX...%x40|as DVI...%x41|as PostScript...%x42|as Ascii " "Text...%x43|as HTML...%x44|Custom...%x45" @@ -4251,7 +4264,7 @@ msgstr "" "Exporter%t|en LaTeX...%x40|en DVI...%x41|en PostScript...%x42|en texte Ascii " "...%x43|en HTML...%x44|Personnalisé...%x45" -#: src/menus.C:550 +#: src/menus.C:549 msgid "" "Export%t|as LinuxDoc...%x40|as DVI...%x41|as PostScript...%x42|as Ascii " "Text...%x43|as HTML...%x44" @@ -4259,7 +4272,7 @@ msgstr "" "Exporter%t|en LinuxDoc...%x40|en DVI...%x41|en PostScript...%x42|en texte " "Ascii...%x43" -#: src/menus.C:558 +#: src/menus.C:557 msgid "" "Export%t|as DocBook...%x40|as DVI...%x41|as PostScript...%x42|as Ascii " "Text...%x43|as HTML...%x44" @@ -4267,32 +4280,32 @@ msgstr "" "Exporter%t|en DocBook...%x40|en DVI...%x41|en PostScript...%x42|en texte " "Ascii...%x43" -#: src/menus.C:565 +#: src/menus.C:564 msgid "FEX|Ll#l#L" msgstr "" -#: src/menus.C:566 +#: src/menus.C:565 msgid "FEX|Dd#d#D" msgstr "" -#: src/menus.C:567 +#: src/menus.C:566 msgid "FEX|Pp#p#P" msgstr "" # A comme Ascii -#: src/menus.C:568 +#: src/menus.C:567 msgid "FEX|Tt#t#T" msgstr "FEX|Aa#a#A" -#: src/menus.C:569 +#: src/menus.C:568 msgid "FEX|Hh#h#H" msgstr "EM|Xx#x#X" -#: src/menus.C:572 +#: src/menus.C:571 msgid "FEX|mM#m#M" msgstr "FEX|sS#s#S" -#: src/menus.C:576 +#: src/menus.C:575 msgid "" "New...|New from template...|Open...%l|Close|Save|Save As...|Revert to " "saved%l|View dvi|View PostScript|Update dvi|Update PostScript|Build " @@ -4303,90 +4316,90 @@ msgstr "" "%l|Visualiser DVI|Visualiser PostScript|Mise à jour DVI|Mise à jour " "PostScript|Compiler programme%l|Imprimer...|Télécopie..." -#: src/menus.C:591 src/menus.C:809 +#: src/menus.C:590 src/menus.C:808 msgid "FM|Nn#n#N" msgstr "" -#: src/menus.C:592 src/menus.C:810 +#: src/menus.C:591 src/menus.C:809 msgid "FM|tT#t#T" msgstr "FM|mM#m#M" -#: src/menus.C:593 src/menus.C:811 +#: src/menus.C:592 src/menus.C:810 msgid "FM|Oo#o#O" msgstr "" -#: src/menus.C:594 +#: src/menus.C:593 msgid "FM|Cc#c#C" msgstr "FM|Ff#f#F" -#: src/menus.C:595 +#: src/menus.C:594 msgid "FM|Ss#s#S" msgstr "FM|Ee#e#E" -#: src/menus.C:596 +#: src/menus.C:595 msgid "FM|Aa#a#A" msgstr "FM|sS#s#S" -#: src/menus.C:597 +#: src/menus.C:596 msgid "FM|Rr#r#R" msgstr "" -#: src/menus.C:598 +#: src/menus.C:597 msgid "FM|dD#d#D" msgstr "FM|Dd#d#D" -#: src/menus.C:599 +#: src/menus.C:598 msgid "FM|wW#w#W" msgstr "FM|Pp#p#P" -#: src/menus.C:600 +#: src/menus.C:599 msgid "FM|vV#v#V" msgstr "FM|dD#d#D" -#: src/menus.C:601 +#: src/menus.C:600 msgid "FM|Uu#u#U" msgstr "FM|pP#p#P" -#: src/menus.C:602 +#: src/menus.C:601 msgid "FM|Bb#b#B" msgstr "FM|Cc#c#C" -#: src/menus.C:603 +#: src/menus.C:602 msgid "FM|Pp#p#P" msgstr "FM|Ii#i#I" -#: src/menus.C:604 +#: src/menus.C:603 msgid "FM|Ff#f#F" msgstr "FM|vV#v#V" -#: src/menus.C:655 +#: src/menus.C:654 #, no-c-format msgid "|Import%m" msgstr "|Importer%m" -#: src/menus.C:657 +#: src/menus.C:656 #, no-c-format msgid "|Export%m%l" msgstr "|Exporter%m%l" -#: src/menus.C:659 +#: src/menus.C:658 #, no-c-format msgid "|Exit%l" msgstr "|Quitter%l" -#: src/menus.C:660 src/menus.C:812 +#: src/menus.C:659 src/menus.C:811 msgid "FM|Ii#i#I" msgstr "FM|mM#m#M" -#: src/menus.C:661 +#: src/menus.C:660 msgid "FM|Ee#e#E" msgstr "FM|xX#x#X" -#: src/menus.C:662 src/menus.C:813 +#: src/menus.C:661 src/menus.C:812 msgid "FM|xX#x#X" msgstr "FM|Qq#q#Q" -#: src/menus.C:778 +#: src/menus.C:777 msgid "" "Import%t|LaTeX...%x15|Ascii Text as Lines...%x16|Ascii Text as " "Paragraphs...%x17|Noweb...%x18|LinuxDoc...%x19" @@ -4394,12 +4407,12 @@ msgstr "" "Importer%t|LaTeX...%x15|Texte Ascii en lignes...%x16|Texte Ascii en " "paragraphes..%x17|Noweb...%x18" -#: src/menus.C:803 +#: src/menus.C:802 msgid "New...|New from template...|Open...%l|Import%m%l|Exit%l" msgstr "" "Nouveau...|Nouveau à partir d'un modèle...|Ouvrir...%l|Importer%m%l|Quitter%l" -#: src/menus.C:893 +#: src/menus.C:892 msgid "" "Floats & Insets%t|Open/Close%x21|Melt%x22|Open All Footnotes/Margin " "Notes%x23|Close All Footnotes/Margin Notes%x24|Open All " @@ -4410,265 +4423,265 @@ msgstr "" "figures/tables%x25|Fermer toutes les figures/tables%x26%l|Effacer les " "erreurs%x27" -#: src/menus.C:902 +#: src/menus.C:901 msgid "EMF|Oo#o#O" msgstr "" -#: src/menus.C:903 +#: src/menus.C:902 msgid "EMF|Mm#m#M" msgstr "" -#: src/menus.C:904 +#: src/menus.C:903 msgid "EMF|Aa#a#A" msgstr "" -#: src/menus.C:905 +#: src/menus.C:904 msgid "EMF|Cc#c#C" msgstr "" -#: src/menus.C:906 +#: src/menus.C:905 msgid "EMF|Ff#f#F" msgstr "" -#: src/menus.C:907 +#: src/menus.C:906 msgid "EMF|Tt#t#T" msgstr "" -#: src/menus.C:908 +#: src/menus.C:907 msgid "EMF|Rr#r#R" msgstr "" -#: src/menus.C:917 src/menus.C:1015 src/menus.C:1082 +#: src/menus.C:916 src/menus.C:1014 src/menus.C:1081 msgid "Table%t" msgstr "Tableau%t" -#: src/menus.C:924 src/menus.C:1018 +#: src/menus.C:923 src/menus.C:1017 msgid "|Multicolumn%B%x44%l" msgstr "|Multicolonne%B%x44%l" -#: src/menus.C:926 src/menus.C:1020 +#: src/menus.C:925 src/menus.C:1019 msgid "|Multicolumn%b%x44%l" msgstr "|Multicolonne%b%x44%l" -#: src/menus.C:927 src/menus.C:1021 +#: src/menus.C:926 src/menus.C:1020 msgid "EMT|Mm#m#M" msgstr "" -#: src/menus.C:934 src/menus.C:1024 +#: src/menus.C:933 src/menus.C:1023 msgid "|Line Top%B%x36" msgstr "|Ligne Haute%B%x36" -#: src/menus.C:936 src/menus.C:1026 +#: src/menus.C:935 src/menus.C:1025 msgid "|Line Top%b%x36" msgstr "|Ligne haute%b%x36" -#: src/menus.C:937 src/menus.C:1027 +#: src/menus.C:936 src/menus.C:1026 msgid "EMT|Tt#t#T" msgstr "EMT|Hh#h#H" -#: src/menus.C:944 src/menus.C:1030 +#: src/menus.C:943 src/menus.C:1029 msgid "|Line Bottom%B%x37" msgstr "|Ligne basse%B%x37" -#: src/menus.C:946 src/menus.C:1032 +#: src/menus.C:945 src/menus.C:1031 msgid "|Line Bottom%b%x37" msgstr "|Ligne basse%b%x37" -#: src/menus.C:947 src/menus.C:1033 +#: src/menus.C:946 src/menus.C:1032 msgid "EMT|Bb#b#B" msgstr "" -#: src/menus.C:954 src/menus.C:1036 +#: src/menus.C:953 src/menus.C:1035 msgid "|Line Left%B%x38" msgstr "|Ligne gauche%B%x38" -#: src/menus.C:956 src/menus.C:1038 +#: src/menus.C:955 src/menus.C:1037 msgid "|Line Left%b%x38" msgstr "|Ligne gauche%b%x38" -#: src/menus.C:957 src/menus.C:1039 +#: src/menus.C:956 src/menus.C:1038 msgid "EMT|Ll#l#L" msgstr "EMT|Gg#g#G" -#: src/menus.C:964 src/menus.C:1042 +#: src/menus.C:963 src/menus.C:1041 msgid "|Line Right%B%x39%l" msgstr "|Ligne droite%B%x39%l" -#: src/menus.C:966 src/menus.C:1044 +#: src/menus.C:965 src/menus.C:1043 msgid "|Line Right%b%x39%l" msgstr "|Ligne droite%b%x39%l" -#: src/menus.C:967 src/menus.C:1045 +#: src/menus.C:966 src/menus.C:1044 msgid "EMT|Rr#r#R" msgstr "EMT|Dd#d#D" -#: src/menus.C:976 src/menus.C:1049 +#: src/menus.C:975 src/menus.C:1048 msgid "|Align Left%R%x40" msgstr "|Aligner à gauche%R%x40" -#: src/menus.C:978 src/menus.C:1051 +#: src/menus.C:977 src/menus.C:1050 msgid "|Align Left%r%x40" msgstr "|Aligner à gauche%r%x40" -#: src/menus.C:979 src/menus.C:1052 +#: src/menus.C:978 src/menus.C:1051 msgid "EMT|eE#e#E" msgstr "EMT|aA#a#A" -#: src/menus.C:982 src/menus.C:1055 +#: src/menus.C:981 src/menus.C:1054 msgid "|Align Right%R%x41" msgstr "|Aligner à droite%R%x41" -#: src/menus.C:984 src/menus.C:1057 +#: src/menus.C:983 src/menus.C:1056 msgid "|Align Right%r%x41" msgstr "|Aligner à droite%r%x41" -#: src/menus.C:985 src/menus.C:1058 +#: src/menus.C:984 src/menus.C:1057 msgid "EMT|iI#i#I" msgstr "EMT|oO#o#O" -#: src/menus.C:988 src/menus.C:1061 +#: src/menus.C:987 src/menus.C:1060 msgid "|Align Center%R%x42%l" msgstr "|Centrer%R%x42%l" -#: src/menus.C:990 src/menus.C:1063 +#: src/menus.C:989 src/menus.C:1062 msgid "|Align Center%r%x42%l" msgstr "|Centrer%r%x42%l" -#: src/menus.C:991 src/menus.C:1064 +#: src/menus.C:990 src/menus.C:1063 msgid "EMT|Cc#c#C" msgstr "" -#: src/menus.C:994 src/menus.C:1067 +#: src/menus.C:993 src/menus.C:1066 #, no-c-format msgid "|Append Row%x32" msgstr "|Ajouter Ligne%x32" -#: src/menus.C:995 src/menus.C:1068 +#: src/menus.C:994 src/menus.C:1067 msgid "EMT|oO#o#O" msgstr "" -#: src/menus.C:997 src/menus.C:1070 +#: src/menus.C:996 src/menus.C:1069 #, no-c-format msgid "|Append Column%x33%l" msgstr "|Ajouter colonne%x33%l" -#: src/menus.C:998 src/menus.C:1071 +#: src/menus.C:997 src/menus.C:1070 msgid "EMT|uU#u#U" msgstr "" -#: src/menus.C:1000 src/menus.C:1073 +#: src/menus.C:999 src/menus.C:1072 #, no-c-format msgid "|Delete Row%x34" msgstr "|Supprimer ligne%x34" -#: src/menus.C:1001 src/menus.C:1074 +#: src/menus.C:1000 src/menus.C:1073 msgid "EMT|wW#w#W" msgstr "" -#: src/menus.C:1003 src/menus.C:1076 +#: src/menus.C:1002 src/menus.C:1075 #, no-c-format msgid "|Delete Column%x35%l" msgstr "|Supprimer colonne%x35%l" -#: src/menus.C:1004 src/menus.C:1077 +#: src/menus.C:1003 src/menus.C:1076 msgid "EMT|nN#n#N" msgstr "" -#: src/menus.C:1006 src/menus.C:1079 +#: src/menus.C:1005 src/menus.C:1078 #, no-c-format msgid "|Delete Table%x43" msgstr "|Supprimer tableau%x43" -#: src/menus.C:1007 src/menus.C:1080 +#: src/menus.C:1006 src/menus.C:1079 msgid "EMT|Dd#d#D" msgstr "" -#: src/menus.C:1084 +#: src/menus.C:1083 #, no-c-format msgid "|Insert table%x31" msgstr "|Insérer tableau%x31" -#: src/menus.C:1085 +#: src/menus.C:1084 msgid "EMT|Ii#i#I" msgstr "" -#: src/menus.C:1089 +#: src/menus.C:1088 msgid "Version Control%t" msgstr "Contrôle de version%t" -#: src/menus.C:1092 +#: src/menus.C:1091 #, no-c-format msgid "|Register%d%x51" msgstr "|Initialiser le contrôle%d%x51" #. signifies that the file is not checked out -#: src/menus.C:1096 +#: src/menus.C:1095 #, no-c-format msgid "|Check In Changes%d%x52" msgstr "|Figer cette version%d%x52" -#: src/menus.C:1098 +#: src/menus.C:1097 #, no-c-format msgid "|Check Out for Edit%x53" msgstr "|Nouvelle version éditable%x53" #. signifies that the file is checked out -#: src/menus.C:1102 +#: src/menus.C:1101 #, no-c-format msgid "|Check In Changes%x52" msgstr "|Figer cette version%x52" -#: src/menus.C:1104 +#: src/menus.C:1103 #, no-c-format msgid "|Check Out for Edit%d%x53" msgstr "|Nouvelle version éditable%d%x53" -#: src/menus.C:1107 +#: src/menus.C:1106 #, no-c-format msgid "|Revert to last version%x54" msgstr "|Recharger la version précédente%x54" -#: src/menus.C:1109 +#: src/menus.C:1108 #, no-c-format msgid "|Undo last check in%x55" msgstr "|Annuler figer%x55" -#: src/menus.C:1111 +#: src/menus.C:1110 #, no-c-format msgid "|Show History%x56" msgstr "|Visualiser historique%x56" -#: src/menus.C:1114 +#: src/menus.C:1113 #, no-c-format msgid "|Register%x51" msgstr "|Initialiser le contrôle%x51" #. the shortcuts are not good. -#: src/menus.C:1117 +#: src/menus.C:1116 msgid "EMV|Rr#r#R" msgstr "EMV|Ii#i#I" -#: src/menus.C:1118 +#: src/menus.C:1117 msgid "EMV|Ii#i#I" msgstr "EMV|Ff#f#F" -#: src/menus.C:1119 +#: src/menus.C:1118 msgid "EMV|Oo#o#O" msgstr "EMV|Nn#n#N" -#: src/menus.C:1120 +#: src/menus.C:1119 msgid "EMV|lL#l#l" msgstr "EMV|Rr#r#R" -#: src/menus.C:1121 +#: src/menus.C:1120 msgid "EMV|Uu#u#U" msgstr "EMV|Aa#a#A" -#: src/menus.C:1122 +#: src/menus.C:1121 msgid "EMV|Hh#h#H" msgstr "" -#: src/menus.C:1125 +#: src/menus.C:1124 msgid "" "Undo|Redo %l|Cut|Copy|Paste%l|Find & Replace...|Go to Error|Go to " "Note|Floats & Insets%m|Table%m|Spellchecker....|Check TeX|Table of " @@ -4682,124 +4695,124 @@ msgstr "" "TeX|Table des matières...%l|Contrôle de version%m%l|Examiner journal LaTeX " "log%l|Copier sélection en lignes|Copier sélection en paragraphes" -#: src/menus.C:1147 +#: src/menus.C:1146 msgid "EM|Uu#u#U" msgstr "EM|Aa#a#A" -#: src/menus.C:1148 +#: src/menus.C:1147 msgid "EM|Rr#r#R" msgstr "" -#: src/menus.C:1149 +#: src/menus.C:1148 msgid "EM|Cc#c#C" msgstr "EM|uU#u#U" -#: src/menus.C:1150 +#: src/menus.C:1149 msgid "EM|oO#o#O" msgstr "EM|pP#p#P" -#: src/menus.C:1151 +#: src/menus.C:1150 msgid "EM|Pp#p#P" msgstr "EM|lL#l#L" -#: src/menus.C:1152 +#: src/menus.C:1151 msgid "EM|Ff#f#F" msgstr "EM|Rr#r#R" -#: src/menus.C:1153 +#: src/menus.C:1152 msgid "EM|Ee#e#E" msgstr "" -#: src/menus.C:1154 +#: src/menus.C:1153 msgid "EM|Nn#n#N" msgstr "" -#: src/menus.C:1155 +#: src/menus.C:1154 msgid "EM|Ii#i#I" msgstr "" #. fl_setpup_shortcut(EditMenu, 10, scex(_("EM|Tt#t#T"))); -#: src/menus.C:1157 +#: src/menus.C:1156 msgid "EM|Ss#s#S" msgstr "EM|Oo#o#O" -#: src/menus.C:1158 +#: src/menus.C:1157 msgid "EM|hH#h#H" msgstr "EM|Xx#x#X" -#: src/menus.C:1159 +#: src/menus.C:1158 msgid "EM|Tt#t#T" msgstr "EM|" #. fl_setpup_shortcut(EditMenu, 14, scex(_("EM|Ff#f#F"))); #. fl_setpup_shortcut(EditMenu, 15, scex(_("EM|bB#b#B"))); #. fl_setpup_shortcut(EditMenu, 16, scex(_("EM|mM#m#M"))); -#: src/menus.C:1163 +#: src/menus.C:1162 msgid "EM|Vv#v#V" msgstr "" -#: src/menus.C:1164 +#: src/menus.C:1163 msgid "EM|wW#w#W" msgstr "EM|Jj#j#J" -#: src/menus.C:1165 +#: src/menus.C:1164 msgid "EM|Ll#l#L" msgstr "" -#: src/menus.C:1166 +#: src/menus.C:1165 msgid "EM|gG#g#G" msgstr "" -#: src/menus.C:1366 +#: src/menus.C:1360 #, no-c-format msgid "List of Figures%m" msgstr "Liste des figures%m" -#: src/menus.C:1368 +#: src/menus.C:1362 #, no-c-format msgid "List of Tables%m" msgstr "Liste des tableaux%m" -#: src/menus.C:1370 +#: src/menus.C:1364 #, no-c-format msgid "List of Algorithms%m" msgstr "Liste des algorithmes%m" -#: src/menus.C:1503 +#: src/menus.C:1492 #, no-c-format msgid "Insert Reference%m" msgstr "Insérer référence%m" -#: src/menus.C:1505 +#: src/menus.C:1494 #, no-c-format msgid "Insert Page Number%m" msgstr "Insérer n° de page%m" -#: src/menus.C:1507 +#: src/menus.C:1496 #, no-c-format msgid "Insert vref%m" msgstr "Insérer vref%m" -#: src/menus.C:1509 +#: src/menus.C:1498 #, no-c-format msgid "Insert vpageref%m" msgstr "Insérer vpageref%m" -#: src/menus.C:1511 +#: src/menus.C:1500 #, no-c-format msgid "Insert Pretty Ref%m" msgstr "Insérer Pretty Ref%m" -#: src/menus.C:1513 +#: src/menus.C:1502 #, no-c-format msgid "Goto Reference%m" msgstr "Aller à la reférence%m" -#: src/menus.C:1527 +#: src/menus.C:1516 msgid "Go Back" msgstr "" -#: src/menus.C:1595 +#: src/menus.C:1584 msgid "" "Character...|Paragraph...|Document...|Paper...|Table...|Quotes...%l|Emphasize" " Style%b|Noun Style%b|Bold Style%b|TeX Style%b%l|Change Environment " @@ -4809,76 +4822,76 @@ msgstr "" "En évidence%b|Nom propre%b|Gras%b|TeX%b|Profondeur|Préambule " "LaTeX...%l|Début d'annexe%l|Enregistrer mise en page comme défaut" -#: src/menus.C:1609 +#: src/menus.C:1598 msgid "LM|Cc#c#C" msgstr "" -#: src/menus.C:1610 +#: src/menus.C:1599 msgid "LM|Pp#p#P" msgstr "" -#: src/menus.C:1611 +#: src/menus.C:1600 msgid "LM|Dd#d#D" msgstr "" -#: src/menus.C:1612 +#: src/menus.C:1601 msgid "LM|aA#a#A" msgstr "" -#: src/menus.C:1613 +#: src/menus.C:1602 msgid "LM|eE#e#E" msgstr "LM|Tt#t#T" -#: src/menus.C:1614 +#: src/menus.C:1603 msgid "LM|Qq#q#Q" msgstr "LM|uU#u#U" -#: src/menus.C:1615 +#: src/menus.C:1604 msgid "LM|mM#m#M" msgstr "LM|Ee#e#E" -#: src/menus.C:1616 +#: src/menus.C:1605 msgid "LM|Nn#n#N" msgstr "LM|Mm#m#M" -#: src/menus.C:1617 +#: src/menus.C:1606 msgid "LM|Bb#b#B" msgstr "LM|Gg#g#G" -#: src/menus.C:1618 +#: src/menus.C:1607 msgid "LM|Tt#t#T" msgstr "" -#: src/menus.C:1619 +#: src/menus.C:1608 msgid "LM|vV#v#V" msgstr "LM|fF#f#F" -#: src/menus.C:1620 +#: src/menus.C:1609 msgid "LM|Ll#l#L" msgstr "" # defuzzifié sans vérification -#: src/menus.C:1621 +#: src/menus.C:1610 msgid "LM|xX#x#X" msgstr "FM|Qq#q#Q" -#: src/menus.C:1622 +#: src/menus.C:1611 msgid "LM|Ss#s#S" msgstr "LM|Dd#d#D" -#: src/menus.C:1688 +#: src/menus.C:1677 msgid "Import ASCII file%t|As Lines%x41|As Paragraphs%x42" msgstr "Importer fichier Ascii%t|En lignes%x41|En paragraphes%x42" -#: src/menus.C:1692 +#: src/menus.C:1681 msgid "IMA|Ll#l#L" msgstr "" -#: src/menus.C:1693 +#: src/menus.C:1682 msgid "IMA|Pp#p#P" msgstr "" -#: src/menus.C:1696 +#: src/menus.C:1685 msgid "" "Lists & TOC%t|Table of Contents%x21|List of Figures%x22|List of " "Tables%x23|List of Algorithms%x24|Index List%x25|BibTeX Reference%x26" @@ -4886,31 +4899,31 @@ msgstr "" "Listes & tables%t|Table des matières%x21|Liste des figures%x22|Liste des " "tableaux%x23|Liste des algorithmes%x24|Index%x25|Références BibTeX%x26" -#: src/menus.C:1704 +#: src/menus.C:1693 msgid "IMT|Cc#c#C" msgstr "IML|Mm#m#M" -#: src/menus.C:1705 +#: src/menus.C:1694 msgid "IMT|Ff#f#F" msgstr "IML|Ff#f#F" -#: src/menus.C:1706 +#: src/menus.C:1695 msgid "IMT|Tt#t#T" msgstr "IML|Tt#t#T" -#: src/menus.C:1707 +#: src/menus.C:1696 msgid "IMT|Aa#a#A" msgstr "IML|Aa#a#A" -#: src/menus.C:1708 +#: src/menus.C:1697 msgid "IMT|Ii#i#I" msgstr "IML|Ii#i#I" -#: src/menus.C:1709 +#: src/menus.C:1698 msgid "IMT|Bb#b#B" msgstr "IML|Bb#b#B" -#: src/menus.C:1712 +#: src/menus.C:1701 msgid "" "Floats%t|Figure Float%x71|Table Float%x72|Wide Figure Float%x73|Wide Table " "Float%l%x74|Algorithm Float%x75" @@ -4919,27 +4932,27 @@ msgstr "" "flottante%x73|Grand tableau flottant%l%x74|Algorithme flottant%x75" # à revoir -#: src/menus.C:1719 +#: src/menus.C:1708 msgid "IMF|gG#g#G" msgstr "IM|Ff#f#F" -#: src/menus.C:1720 +#: src/menus.C:1709 msgid "IMF|Tt#t#T" msgstr "IMF|tT#t#T" -#: src/menus.C:1721 +#: src/menus.C:1710 msgid "IMF|Ww#w#W" msgstr "IMF|Ff#f#F" -#: src/menus.C:1722 +#: src/menus.C:1711 msgid "IMF|iI#i#I" msgstr "IMF|Tt#t#T" -#: src/menus.C:1723 +#: src/menus.C:1712 msgid "IMF|Aa#a#A" msgstr "" -#: src/menus.C:1726 +#: src/menus.C:1715 msgid "" "Special Character%t|HFill%x31|Hyphenation Point%x32|Protected " "Blank%x33|Linebreak%x34|Ellipsis (...)%x35|End of sentence " @@ -4949,39 +4962,39 @@ msgstr "" "insécable%x33|Passage à la ligne%x34|Points de suspension (...)%x35|Point " "final%x36|Guillemets (\")%x37|Séparateur de menu%x38" -#: src/menus.C:1736 +#: src/menus.C:1725 msgid "IMS|Hh#h#H" msgstr "" -#: src/menus.C:1737 +#: src/menus.C:1726 msgid "IMS|Pp#p#P" msgstr "IMS|Cc#c#C" -#: src/menus.C:1738 +#: src/menus.C:1727 msgid "IMS|Bb#b#B" msgstr "" -#: src/menus.C:1739 +#: src/menus.C:1728 msgid "IMS|Ll#l#L" msgstr "" -#: src/menus.C:1740 +#: src/menus.C:1729 msgid "IMS|iI#i#I" msgstr "IMS|Ss#s#S" -#: src/menus.C:1741 +#: src/menus.C:1730 msgid "IMS|Ee#e#E" msgstr "IMS|Pp#p#P" -#: src/menus.C:1742 +#: src/menus.C:1731 msgid "IMS|Qq#q#Q" msgstr "IMS|Gg#g#G" -#: src/menus.C:1743 +#: src/menus.C:1732 msgid "IMS|Mm#m#M" msgstr "IMS|Mm#m#M" -#: src/menus.C:1746 +#: src/menus.C:1735 msgid "" "Figure...|Table...%l|Include File...|Import ASCII File%m|Insert LyX " "File...%l|Footnote|Margin Note|Floats%m%l|Lists & TOC%m%l|Special " @@ -4994,79 +5007,79 @@ msgstr "" "croisée...|Citation bibliographique...|Entrée d'index...|Index du mot " "précédent" -#: src/menus.C:1767 +#: src/menus.C:1756 msgid "IM|gG#g#G" msgstr "IM|Ff#f#F" -#: src/menus.C:1768 +#: src/menus.C:1757 msgid "IM|bB#b#B" msgstr "IM|Tt#t#T" -#: src/menus.C:1769 +#: src/menus.C:1758 msgid "IM|cC#c#C" msgstr "" -#: src/menus.C:1770 +#: src/menus.C:1759 msgid "IM|Aa#a#A" msgstr "" -#: src/menus.C:1771 +#: src/menus.C:1760 msgid "IM|Xx#x#X" msgstr "" -#: src/menus.C:1772 +#: src/menus.C:1761 msgid "IM|Ff#f#F" msgstr "IM|bB#b#B" -#: src/menus.C:1773 +#: src/menus.C:1762 msgid "IM|Mm#m#M" msgstr "" -#: src/menus.C:1774 +#: src/menus.C:1763 msgid "IM|oO#o#O" msgstr "" -#: src/menus.C:1775 +#: src/menus.C:1764 msgid "IM|Tt#t#T" msgstr "IM|Ll#l#L" -#: src/menus.C:1776 +#: src/menus.C:1765 msgid "IM|Ss#s#S" msgstr "" -#: src/menus.C:1777 +#: src/menus.C:1766 msgid "IM|Nn#n#N" msgstr "" -#: src/menus.C:1778 +#: src/menus.C:1767 msgid "IM|Ll#l#L" msgstr "IM|Éé#é#É" -#: src/menus.C:1779 +#: src/menus.C:1768 msgid "IM|rR#r#R" msgstr "IM|Rr#r#R" -#: src/menus.C:1780 +#: src/menus.C:1769 msgid "IM|iI#i#I" msgstr "IM|Cc#c#C" -#: src/menus.C:1781 +#: src/menus.C:1770 msgid "IM|dD#d#D" msgstr "IM|xX#x#X" -#: src/menus.C:1782 +#: src/menus.C:1771 msgid "IM|wW#w#W" msgstr "IM|dD#d#D" -#: src/menus.C:1784 +#: src/menus.C:1773 msgid "|URL..." msgstr "" -#: src/menus.C:1785 +#: src/menus.C:1774 msgid "IM|Uu#u#U" msgstr "" -#: src/menus.C:1891 +#: src/menus.C:1880 msgid "" "Fraction|Square root|Exponent|Index|Sum|Integral%l|Math mode|Display%l|Math " "Panel..." @@ -5074,74 +5087,74 @@ msgstr "" "Fraction|Racine carrée|Puissance|Indice|Somme|Intégrale%l|Mode " "mathématique|Déploiement%l|Palette mathématique..." -#: src/menus.C:1901 +#: src/menus.C:1890 msgid "MM|Ff#f#F" msgstr "" -#: src/menus.C:1902 +#: src/menus.C:1891 msgid "MM|Ss#s#S" msgstr "" -#: src/menus.C:1903 +#: src/menus.C:1892 msgid "MM|Ee#e#E" msgstr "" -#: src/menus.C:1904 +#: src/menus.C:1893 msgid "MM|xX#x#X" msgstr "" -#: src/menus.C:1905 +#: src/menus.C:1894 msgid "MM|uU#u#U" msgstr "" -#: src/menus.C:1906 +#: src/menus.C:1895 msgid "MM|Ii#i#I" msgstr "" -#: src/menus.C:1907 +#: src/menus.C:1896 msgid "MM|Mm#m#M" msgstr "" -#: src/menus.C:1908 +#: src/menus.C:1897 msgid "MM|Dd#d#D" msgstr "" -#: src/menus.C:1909 +#: src/menus.C:1898 msgid "MM|Pp#p#P" msgstr "" -#: src/menus.C:1975 +#: src/menus.C:1964 msgid "" "Screen Fonts...|Spellchecker Options...|Keyboard...|LaTeX...%l|Reconfigure" msgstr "" "Polices d'écran...|Options correcteur " "orthographique...|Clavier...|LaTeX...%l|Reconfiguration" -#: src/menus.C:1981 +#: src/menus.C:1970 msgid "OM|Ff#f#F" msgstr "" -#: src/menus.C:1982 +#: src/menus.C:1971 msgid "OM|Ss#s#S" msgstr "" -#: src/menus.C:1983 +#: src/menus.C:1972 msgid "OM|Kk#k#K" msgstr "" -#: src/menus.C:1984 +#: src/menus.C:1973 msgid "OM|Ll#l#L" msgstr "" -#: src/menus.C:1985 +#: src/menus.C:1974 msgid "OM|Rr#r#R" msgstr "" -#: src/menus.C:2029 +#: src/menus.C:2018 msgid "No Documents Open!%t" msgstr "Pas de documents ouverts !%t" -#: src/menus.C:2064 +#: src/menus.C:2053 msgid "" "Introduction|Tutorial|User's Guide|Extended Features|Customization|Reference " "Manual|FAQ|Table of Contents|Known Bugs|LaTeX Configuration%l|Copyright and " @@ -5152,80 +5165,80 @@ msgstr "" "répertoriés|Configuration LaTeX%l|Copyright et " "garantie...|Crédits...|Version..." -#: src/menus.C:2078 +#: src/menus.C:2067 msgid "HM|Ii#I#i" msgstr "" -#: src/menus.C:2079 +#: src/menus.C:2068 msgid "HM|Tt#T#t" msgstr "" -#: src/menus.C:2080 +#: src/menus.C:2069 msgid "HM|Uu#U#u" msgstr "" -#: src/menus.C:2081 +#: src/menus.C:2070 msgid "HM|xX#x#X" msgstr "" -#: src/menus.C:2082 +#: src/menus.C:2071 msgid "HM|Cc#C#c" msgstr "" -#: src/menus.C:2083 +#: src/menus.C:2072 msgid "HM|Rr#R#r" msgstr "" -#: src/menus.C:2084 +#: src/menus.C:2073 msgid "HM|Ff#F#f" msgstr "FM|vV#v#V" -#: src/menus.C:2085 +#: src/menus.C:2074 msgid "HM|aA#a#A" msgstr "FM|sS#s#S" -#: src/menus.C:2086 +#: src/menus.C:2075 msgid "HM|Kk#K#k" msgstr "" -#: src/menus.C:2087 +#: src/menus.C:2076 msgid "HM|Ll#L#l" msgstr "" -#: src/menus.C:2088 +#: src/menus.C:2077 msgid "HM|oO#o#O" msgstr "" -#: src/menus.C:2089 +#: src/menus.C:2078 msgid "HM|eE#e#E" msgstr "" -#: src/menus.C:2090 +#: src/menus.C:2079 msgid "HM|Vv#v#V" msgstr "" -#: src/menus.C:2113 +#: src/menus.C:2102 msgid "LyX Version " msgstr "Version LyX" -#: src/menus.C:2114 +#: src/menus.C:2103 msgid " of " msgstr " de " # à revoir -#: src/menus.C:2115 +#: src/menus.C:2104 msgid "Library directory: " msgstr "Répertoire bibliothèque :" -#: src/menus.C:2117 +#: src/menus.C:2106 msgid "User directory: " msgstr "Répertoire utilisateur :" -#: src/menus.C:2131 +#: src/menus.C:2120 msgid "Could not find requested Documentation file" msgstr "Impossible d'insérer le document" -#: src/menus.C:2135 +#: src/menus.C:2124 msgid "Opening help file" msgstr "Ouverture du fichier d'aide" @@ -5540,11 +5553,11 @@ msgstr "Attention !" #: src/table.C:990 src/tabular.C:1173 msgid "Tabular format < 5 is not supported anymore\n" -msgstr "" +msgstr "Le format Tabular < 5 n'est plus supporté\n" #: src/table.C:991 src/tabular.C:1174 msgid "Get an older version of LyX (< 1.1.x) for conversion!" -msgstr "" +msgstr "Utilisez une ancienne version de LyX (< 1.1.x) pour convertir" #: src/TableLayout.C:240 msgid "Table Extra Form" @@ -5614,11 +5627,11 @@ msgstr "" #: src/text.C:4027 src/text.C:4033 msgid "Page Break (top)" -msgstr "Saut de Page" +msgstr "Saut de Page (Haut)" #: src/text.C:4209 src/text.C:4215 msgid "Page Break (bottom)" -msgstr "" +msgstr "Saut de Page (Bas)" #: src/text.C:4635 msgid "You can't insert a float in a float!" diff --git a/src/bibforms.h b/src/bibforms.h index 9c80ec8edf..022f7075d3 100644 --- a/src/bibforms.h +++ b/src/bibforms.h @@ -6,11 +6,20 @@ /**** Forms and Objects ****/ typedef struct { - FL_FORM *citation_form; + FL_FORM *form; void *vdata; long ldata; - FL_OBJECT *key; - FL_OBJECT *label; + FL_OBJECT *box; + FL_OBJECT *citeBrsr; + FL_OBJECT *bibBrsr; + FL_OBJECT *infoBrsr; + FL_OBJECT *textAftr; + FL_OBJECT *addBtn; + FL_OBJECT *delBtn; + FL_OBJECT *upBtn; + FL_OBJECT *downBtn; + FL_OBJECT *ok; + FL_OBJECT *cancel; } FD_citation_form; diff --git a/src/bmtable.c b/src/bmtable.c index df5878d35b..d4b4cc62c7 100644 --- a/src/bmtable.c +++ b/src/bmtable.c @@ -314,7 +314,7 @@ void fl_set_bmtable_file(FL_OBJECT * ob, int nx, int ny, char const * filename) void fl_set_bmtable_pixmap_file(FL_OBJECT *ob, int nx, int ny, char const *filename) { - //extern Colormap color_map; + /* extern Colormap color_map; */ BMTABLE_SPEC *sp = (BMTABLE_SPEC *)ob->spec; if (sp) { Pixmap dummy_shapemask = 0; @@ -343,7 +343,7 @@ void fl_set_bmtable_pixmap_file(FL_OBJECT *ob, int nx, int ny, char const *filen XFreePixmap(fl_display, dummy_shapemask); } } - //XFlush(fl_display); + /* XFlush(fl_display); */ } } diff --git a/src/buffer.C b/src/buffer.C index 7d1be9cb89..a7af3e0497 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -60,6 +60,7 @@ #include "insets/insetquotes.h" #include "insets/insetlatexaccent.h" #include "insets/insetbib.h" +#include "insets/insetcite.h" #include "insets/insetindex.h" #include "insets/insetinclude.h" #include "insets/insettoc.h" @@ -3833,49 +3834,43 @@ vector > Buffer::getTocList() } // This is also a buffer property (ale) -string Buffer::getBibkeyList(char delim) +vector > Buffer::getBibkeyList() { /// if this is a child document and the parent is already loaded /// Use the parent's list instead [ale990412] if (!params.parentname.empty() && bufferlist.exists(params.parentname)) { Buffer * tmp = bufferlist.getBuffer(params.parentname); if (tmp) - return tmp->getBibkeyList(delim); + return tmp->getBibkeyList(); } - string bibkeys; + vector > keys; LyXParagraph * par = paragraph; while (par) { - if (par->bibkey) { - if (!bibkeys.empty()) - bibkeys += delim; - bibkeys += par->bibkey->getContents(); - } + if (par->bibkey) + keys.push_back(pair(par->bibkey->getContents(), + par->String(false))); par = par->next; } // Might be either using bibtex or a child has bibliography - if (bibkeys.empty()) { + if (keys.empty()) { for (inset_iterator it = inset_iterator_begin(); - it != inset_iterator_end(); ++it) { + it != inset_iterator_end(); ++it) { // Search for Bibtex or Include inset if ((*it)->LyxCode() == Inset::BIBTEX_CODE) { - if (!bibkeys.empty()) - bibkeys += delim; - bibkeys += static_cast(*it)->getKeys(delim); + vector > tmp = + static_cast(*it)->getKeys(); + keys.insert(keys.end(), tmp.begin(), tmp.end()); } else if ((*it)->LyxCode() == Inset::INCLUDE_CODE) { - string bk(static_cast(*it)->getKeys(delim)); - if (!bk.empty()) { - if (!bibkeys.empty()) - bibkeys += delim; - bibkeys += bk; - } + vector > tmp = + static_cast(*it)->getKeys(); + keys.insert(keys.end(), tmp.begin(), tmp.end()); } } } - lyxerr.debug() << "Bibkeys(" << bibkeys << ")" << endl; - return bibkeys; + return keys; } diff --git a/src/buffer.h b/src/buffer.h index ad16276e25..85a5317390 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -291,7 +291,7 @@ public: /// string getIncludeonlyList(char delim = ','); /// - string getBibkeyList(char delim = '|'); + std::vector > getBibkeyList(); /// struct TocItem { LyXParagraph * par; diff --git a/src/insets/Makefile.am b/src/insets/Makefile.am index 276a510daf..093913bcc5 100644 --- a/src/insets/Makefile.am +++ b/src/insets/Makefile.am @@ -16,6 +16,8 @@ libinsets_la_SOURCES = \ inset.C \ insetbib.C \ insetbib.h \ + insetcite.C \ + insetcite.h \ insetcollapsable.C \ insetcollapsable.h \ insetcommand.C \ diff --git a/src/insets/insetbib.C b/src/insets/insetbib.C index d17128bdfa..4fca380b18 100644 --- a/src/insets/insetbib.C +++ b/src/insets/insetbib.C @@ -24,48 +24,28 @@ using std::ostream; using std::ifstream; using std::getline; using std::endl; +using std::vector; +using std::pair; extern BufferView * current_view; -FD_citation_form * citation_form = 0; FD_bibitem_form * bibitem_form = 0; -static Combox * bibcombox = 0; -void BibitemUpdate(Combox *); -FD_citation_form * create_form_citation_form(void); FD_bibitem_form * create_form_bibitem_form(void); extern "C" void bibitem_cb(FL_OBJECT *, long data) { - switch (data) { - case 1: // OK, citation - { - InsetCitation::Holder * holder = - static_cast - (citation_form->citation_form->u_vdata); - if(!holder->view->buffer()->isReadonly()) { - - InsetCitation * inset = holder->inset; - inset->setContents(bibcombox->getline()); - inset->setOptions(fl_get_input(citation_form->label)); - fl_hide_form(citation_form->citation_form); - // shouldn't mark the buffer dirty unless something - // was actually altered - holder->view->updateInset(inset, true); - break; - } - // fall through to Cancel on RO-mode - } - case 0: fl_hide_form(citation_form->citation_form); - break; - case 3: // OK, bibitem - { + switch (data) + { + case 1: + { InsetBibKey::Holder * holder = static_cast (bibitem_form->bibitem_form->u_vdata); - if(!holder->view->buffer()->isReadonly()) { + if(!holder->view->buffer()->isReadonly()) + { InsetBibKey * inset = holder->inset; inset->setContents(fl_get_input(bibitem_form->key)); inset->setOptions(fl_get_input(bibitem_form->label)); @@ -75,46 +55,14 @@ extern "C" void bibitem_cb(FL_OBJECT *, long data) holder->view->update(1); break; } // fall through to Cancel on RO-mode - } - case 2: // Cancel, bibitem - fl_hide_form(bibitem_form->bibitem_form); // Cancel, bibitem + } + case 0: + fl_hide_form(bibitem_form->bibitem_form); break; } } -FD_citation_form * create_form_citation_form(void) -{ - FL_OBJECT * obj; - FD_citation_form * fdui = (FD_citation_form *) fl_calloc(1, sizeof(FD_citation_form)); - - fdui->citation_form = fl_bgn_form(FL_NO_BOX, 220, 130); - obj = fl_add_box(FL_UP_BOX, 0, 0, 220, 130, ""); - fdui->key = obj = fl_add_text(FL_NORMAL_TEXT, 20, 10, 60, 30, _("Key:")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_lalign(obj, FL_ALIGN_RIGHT); - - bibcombox = new Combox(FL_COMBOX_INPUT); - bibcombox->add(80, 10, 130, 30, 300); - - obj = fl_add_button(FL_RETURN_BUTTON, 20, 90, 90, 30, _("OK")); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_callback(obj, bibitem_cb, 1); - obj = fl_add_button(FL_NORMAL_BUTTON, 120, 90, 90, 30, idex(_("Cancel|^["))); - fl_set_button_shortcut(obj, scex(_("Cancel|^[")), 1); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_callback(obj, bibitem_cb, 0); - fdui->label = obj = fl_add_input(FL_NORMAL_INPUT, 80, 50, 130, 30, idex(_("Remark:|#R"))); - fl_set_input_shortcut(obj, scex(_("Remark:|#R")), 1); - fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_end_form(); - - //fdui->citation_form->fdui = fdui; - - return fdui; -} -/*---------------------------------------*/ - FD_bibitem_form * create_form_bibitem_form(void) { FL_OBJECT * obj; @@ -127,11 +75,11 @@ FD_bibitem_form * create_form_bibitem_form(void) fl_set_object_lsize(obj, FL_NORMAL_SIZE); obj = fl_add_button(FL_RETURN_BUTTON, 20, 90, 90, 30, _("OK")); fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_callback(obj, bibitem_cb, 3); + fl_set_object_callback(obj, bibitem_cb, 1); obj = fl_add_button(FL_NORMAL_BUTTON, 120, 90, 90, 30, idex(_("Cancel|^["))); fl_set_button_shortcut(obj, scex(_("Cancel|^[")), 1); fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_callback(obj, bibitem_cb, 2); + fl_set_object_callback(obj, bibitem_cb, 0); fdui->label = obj = fl_add_input(FL_NORMAL_INPUT, 80, 50, 130, 30, idex(_("Label:|#L"))); fl_set_input_shortcut(obj, scex(_("Label:|#L")), 1); fl_set_object_lsize(obj, FL_NORMAL_SIZE); @@ -141,86 +89,19 @@ FD_bibitem_form * create_form_bibitem_form(void) return fdui; } -/*---------------------------------------*/ - - -InsetCitation::InsetCitation(string const & key, string const & note) - : InsetCommand("cite", key, note) -{ - -} - - -InsetCitation::~InsetCitation() -{ - if(citation_form && citation_form->citation_form - && citation_form->citation_form->visible - && citation_form->citation_form->u_vdata == &holder) - fl_hide_form(citation_form->citation_form); -} - - -void InsetCitation::Edit(BufferView * bv, int, int, unsigned int) -{ - if(bv->buffer()->isReadonly()) - WarnReadonly(bv->buffer()->fileName()); - - if (!citation_form) { - citation_form = create_form_citation_form(); - fl_set_form_atclose(citation_form->citation_form, - CancelCloseBoxCB, 0); - } - - holder.inset = this; - holder.view = bv; - - citation_form->citation_form->u_vdata = &holder; - - BibitemUpdate(bibcombox); - if (!bibcombox->select_text(getContents().c_str())) - bibcombox->addline(getContents().c_str()); - - fl_set_input(citation_form->label, getOptions().c_str()); - if (citation_form->citation_form->visible) { - fl_raise_form(citation_form->citation_form); - } else { - fl_show_form(citation_form->citation_form, - FL_PLACE_MOUSE, FL_FULLBORDER, - _("Citation")); - } -} - - -string InsetCitation::getScreenLabel() const -{ - string temp("["); - - temp += contents; - - if (!options.empty()) { - temp += ", " + options; - } - - return temp + ']'; -} -int InsetCitation::Ascii(ostream & os) const -{ - os << getScreenLabel();; - return 0; -} InsetBibKey::InsetBibKey(string const & key, string const & label): InsetCommand("bibitem", key, label) { counter = 1; if (key.empty()) - contents = ' '; + setCmdName(" "); } InsetBibKey::InsetBibKey(InsetBibKey const * b): - InsetCommand("bibitem", b->contents, b->options) + InsetCommand("bibitem", b->getContents(), b->getOptions()) { counter = b->counter; } @@ -238,8 +119,8 @@ void InsetBibKey::setCounter(int c) { counter = c; - if (contents.empty()) - contents += tostr(counter); + if (getCmdName().empty()) + setCmdName( tostr(counter) ); } @@ -250,19 +131,19 @@ void InsetBibKey::setCounter(int c) void InsetBibKey::Write(ostream & os) const { os << "\\bibitem "; - if (!options.empty()) { + if (! getOptions().empty()) { os << '[' - << options << ']'; + << getOptions() << ']'; } os << '{' - << contents << "}\n"; + << getContents() << "}\n"; } string InsetBibKey::getScreenLabel() const { - if (!options.empty()) - return options; + if (! getOptions().empty()) + return getOptions(); return tostr(counter); } @@ -306,7 +187,6 @@ void InsetBibKey::Edit(BufferView * bv, int, int, unsigned int) } - InsetBibtex::InsetBibtex(string const & dbase, string const & style, Buffer * o) : InsetCommand("BibTeX", dbase, style), owner(o) @@ -370,7 +250,7 @@ int InsetBibtex::Latex(ostream & os, // This method returns a comma separated list of Bibtex entries -string InsetBibtex::getKeys(char delim) +vector > InsetBibtex::getKeys() const { // This hack is copied from InsetBibtex::Latex. // Is it still needed? Probably yes. @@ -384,7 +264,8 @@ string InsetBibtex::getKeys(char delim) Path p(owner->filepath); - string tmp, keys; + vector > keys; + string tmp; string bibfiles = getContents(); bibfiles = split(bibfiles, tmp, ','); while(!tmp.empty()) { @@ -398,23 +279,24 @@ string InsetBibtex::getKeys(char delim) // in @ and not being @preamble and @string entries. // It does NOT do any syntax checking! ifstream ifs(fil.c_str()); - string linebuf; - while (getline(ifs, linebuf)) { - linebuf = frontStrip(linebuf); + string linebuf0; + while (getline(ifs, linebuf0)) { + string linebuf = frontStrip(strip(linebuf0)); + if( linebuf.empty() ) continue; if (prefixIs(linebuf, "@")) { linebuf = subst(linebuf, '{', '('); linebuf = split(linebuf, tmp, '('); tmp = lowercase(tmp); if (!prefixIs(tmp, "@string") && !prefixIs(tmp, "@preamble")) { - linebuf = split(linebuf, - tmp, ','); - tmp = frontStrip(strip(tmp)); + linebuf = split(linebuf, tmp, ','); + tmp = frontStrip(tmp); if (!tmp.empty()) { - keys += tmp; - keys += delim; + keys.push_back(pair(tmp,string())); } } + } else if( !keys.empty() ) { + keys.back().second += linebuf + "\n"; } } } @@ -454,10 +336,10 @@ void InsetBibtex::Edit(BufferView * bv, int, int, unsigned int) bool InsetBibtex::addDatabase(string const & db) { - if (!contains(contents, db.c_str())) { - if (!contents.empty()) - contents += ','; - contents += db; + if (!contains(getContents(), db.c_str())) { + if (!getContents().empty()) + addContents(","); + addContents(db); return true; } return false; @@ -466,16 +348,16 @@ bool InsetBibtex::addDatabase(string const & db) bool InsetBibtex::delDatabase(string const & db) { - if (contains(contents, db.c_str())) { + if (contains(getContents(), db.c_str())) { string bd = db; - int n = tokenPos(contents, ',', bd); + int n = tokenPos(getContents(), ',', bd); if (n > 0) { // Weird code, would someone care to explain this?(Lgb) string tmp(", "); tmp += bd; - contents = subst(contents, tmp.c_str(), ", "); + setContents(subst(getContents(), tmp.c_str(), ", ")); } else if (n == 0) - contents = split(contents, bd, ','); + setContents(split(getContents(), bd, ',')); else return false; } @@ -483,23 +365,6 @@ bool InsetBibtex::delDatabase(string const & db) } -// This function should be in LyXView when multiframe works ale970302 -void BibitemUpdate(Combox * combox) -{ - combox->clear(); - - if (!current_view->available()) return; - - string tmp, bibkeys = current_view->buffer()->getBibkeyList(','); - bibkeys = split(bibkeys, tmp,','); - while (!tmp.empty()) { - combox->addto(tmp.c_str()); - bibkeys = split(bibkeys, tmp,','); - } -} - - - // ale070405 This function maybe shouldn't be here. We'll fix this at 0.13. int bibitemMaxWidth(Painter & pain, LyXFont const & font) { @@ -519,7 +384,7 @@ int bibitemMaxWidth(Painter & pain, LyXFont const & font) // ale070405 -string bibitemWidthest(Painter & pain) +string bibitemWidest(Painter & pain) { int w = 0; // Does look like a hack? It is! (but will change at 0.13) diff --git a/src/insets/insetbib.h b/src/insets/insetbib.h index 0f34b7071d..62f7c0d501 100644 --- a/src/insets/insetbib.h +++ b/src/insets/insetbib.h @@ -17,45 +17,10 @@ #endif #include "insetcommand.h" +#include class Buffer; -/** Used to insert citations - */ -class InsetCitation: public InsetCommand { -public: - /// - InsetCitation() : InsetCommand("cite") {} - /// - explicit - InsetCitation(string const & key, string const & note = string()); - /// - ~InsetCitation(); - /// - Inset * Clone() const { - return new InsetCitation(contents, options); - } - /// - string getScreenLabel()const; - /// - void Edit(BufferView *, int x, int y, unsigned int button); - /// - EDITABLE Editable() const { - return IS_EDITABLE; - } - int Ascii(std::ostream &) const; - /// - struct Holder { - InsetCitation * inset; - BufferView * view; - }; - -private: - /// - Holder holder; -}; - - /** Used to insert bibitem's information (key and label) Must be automatically inserted as the first object in a @@ -122,7 +87,7 @@ public: /// Inset * Clone() const { - return new InsetBibtex(contents, options, 0); + return new InsetBibtex(getCmdName(), getOptions(), 0); } /// Inset::Code LyxCode() const @@ -136,7 +101,7 @@ public: /// int Latex(std::ostream &, bool fragile, bool freespace) const; /// - string getKeys(char delim); + std::vector< std::pair > getKeys() const; /// EDITABLE Editable() const { return IS_EDITABLE; diff --git a/src/insets/insetcite.C b/src/insets/insetcite.C new file mode 100644 index 0000000000..7c1461f9d1 --- /dev/null +++ b/src/insets/insetcite.C @@ -0,0 +1,483 @@ +#include + +#include +#include +#include + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include FORMS_H_LOCATION +#include "insetcite.h" +#include "buffer.h" +#include "debug.h" +#include "lyx_gui_misc.h" +#include "BufferView.h" +#include "gettext.h" +#include "lyxtext.h" +#include "support/filetools.h" + +using std::getline; +using std::vector; +using std::pair; +using std::max; +using std::min; +using std::find; + +FD_citation_form * citation_form = 0; +FD_citation_form * create_form_citation_form(void); +void set_size_citation_form(FD_citation_form *, int, bool); + +static vector > bibkeys_info; +static vector bibkeys; +static vector insetkeys; + +extern "C" void citation_cb( FL_OBJECT *, long data ) +{ + InsetCitation::Holder * holder = + static_cast(citation_form->form->u_vdata); + + holder->inset->callback( citation_form, + static_cast(data) ); +} + + +FD_citation_form * create_form_citation_form(void) +{ + FL_OBJECT * obj; + FD_citation_form * fdui = (FD_citation_form *) fl_calloc(1, sizeof(*fdui)); + + // NOTE: dialog geometry is set in setSize(). + // Initial size is simply non-zero. + fdui->form = fl_bgn_form(FL_NO_BOX, 10, 10); + fdui->box = obj = fl_add_box(FL_UP_BOX, 0, 0, 10, 10, ""); + + fdui->citeBrsr = obj = + fl_add_browser(FL_HOLD_BROWSER, 0, 0, 10, 10, _("Citation keys")); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::CITEBRSR); + + fdui->bibBrsr = obj = + fl_add_browser(FL_HOLD_BROWSER, 0, 0, 10, 10, _("Bibliography keys")); + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::BIBBRSR); + + fdui->addBtn = obj = + fl_add_button(FL_NORMAL_BUTTON, 0, 0, 10, 10, "@4->"); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::ADD); + + fdui->delBtn = obj = + fl_add_button(FL_NORMAL_BUTTON, 0, 0, 10, 10, "@9+"); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::DELETE); + + fdui->upBtn = obj = + fl_add_button(FL_NORMAL_BUTTON, 0, 0, 10, 10, "@8->"); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::UP); + + fdui->downBtn = obj = + fl_add_button(FL_NORMAL_BUTTON, 0, 0, 10, 10, "@2->"); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::DOWN); + + fdui->infoBrsr = obj = + fl_add_browser(FL_NORMAL_BROWSER, 0, 0, 10, 10, _("Info")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE) ; + fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); + + fdui->textAftr = obj = + fl_add_input(FL_NORMAL_INPUT, 0, 0, 10, 10, _("Text after")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + + fdui->ok = obj = + fl_add_button(FL_RETURN_BUTTON, 0, 0, 10, 10, _("OK")); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::OK); + + fdui->cancel = obj = + fl_add_button(FL_NORMAL_BUTTON, 0, 0, 10, 10, idex(_("Cancel|^["))); + fl_set_button_shortcut(obj, scex(_("Cancel|^[")), 1); + fl_set_object_lsize(obj, FL_NORMAL_SIZE); + fl_set_object_callback(obj, citation_cb, InsetCitation::CANCEL); + + fl_end_form(); + + return fdui; +} + + +InsetCitation::InsetCitation(string const & key, string const & note) + : InsetCommand("cite", key, note) +{ +} + + +InsetCitation::~InsetCitation() +{ + if(citation_form && citation_form->form + && citation_form->form->visible + && citation_form->form->u_vdata == &holder) + fl_hide_form(citation_form->form); +} + + +void InsetCitation::Edit( BufferView * bv, int, int, unsigned int ) +{ + if ( !citation_form ) { + citation_form = create_form_citation_form(); + fl_set_form_atclose( citation_form->form, + CancelCloseBoxCB, 0 ); + } + + holder.inset = this; + holder.view = bv; + + citation_form->form->u_vdata = &holder; + + // update the browsers, noting the number of keys. + bibkeys_info = bv->buffer()->getBibkeyList(); + bibkeys.clear(); + insetkeys.clear(); + for( unsigned int i = 0; i < bibkeys_info.size(); ++i ) + bibkeys.push_back(bibkeys_info[i].first); + + string tmp; + string keys = getContents(); + keys = frontStrip( split(keys, tmp, ',') ); + while( !tmp.empty() ) { + insetkeys.push_back( tmp ); + keys = frontStrip( split(keys, tmp, ',') ); + } + + updateBrowser( citation_form->bibBrsr, bibkeys ); + updateBrowser( citation_form->citeBrsr, insetkeys ); + fl_clear_browser( citation_form->infoBrsr ); + + // No keys have been selected yet, so... + setBibButtons( citation_form, OFF ); + setCiteButtons( citation_form, OFF ); + + int noKeys = max( bibkeys.size(), insetkeys.size() ); + + // Place bounds, so that 4 <= noKeys <= 15 + noKeys = max( 4, min(15, noKeys) ); + + // Re-size the form to accommodate the new browser size + int size = 20 * noKeys; + bool bibPresent = ( bibkeys.size() > 0 ); + setSize(citation_form, size, bibPresent); + + fl_set_input( citation_form->textAftr, getOptions().c_str() ); + if( holder.view->buffer()->isReadonly() ) + fl_deactivate_object( citation_form->textAftr ); + + if( citation_form->form->visible ) { + fl_raise_form( citation_form->form ); + } else { + fl_show_form( citation_form->form, + FL_PLACE_MOUSE, FL_FULLBORDER, + _("Citation") ); + } +} + + +void InsetCitation::updateBrowser( FL_OBJECT * browser, + vector const & inkeys ) const +{ + fl_clear_browser( browser ); + + fl_freeze_form( browser->form ); + for( unsigned int i = 0; i < inkeys.size(); ++i ) + fl_add_browser_line( browser, inkeys[i].c_str() ); + fl_unfreeze_form( browser->form ); +} + +void InsetCitation::callback( FD_citation_form * form, State cb ) +{ + switch( cb ) { + case BIBBRSR: { + fl_deselect_browser( form->citeBrsr ); + + unsigned int sel = fl_get_browser( form->bibBrsr ); + if( sel < 1 || sel > bibkeys.size() ) break; + + // Put into infoBrsr the additional info associated with + // the selected bibBrsr key + fl_clear_browser( form->infoBrsr ); + fl_add_browser_line( form->infoBrsr, + bibkeys_info[sel-1].second.c_str() ); + + // Highlight the selected bibBrsr key in citeBrsr if present + vector::iterator it = + find( insetkeys.begin(), insetkeys.end(), bibkeys[sel-1] ); + + if( it != insetkeys.end() ) { + int n = it - insetkeys.begin(); + fl_select_browser_line( form->citeBrsr, n+1 ); + fl_set_browser_topline( form->citeBrsr, n+1 ); + } + + if( !holder.view->buffer()->isReadonly() ) { + if( it != insetkeys.end() ) { + setBibButtons( form, OFF ); + setCiteButtons( form, ON ); + } else { + setBibButtons( form, ON ); + setCiteButtons( form, OFF ); + } + } + break; + + } case CITEBRSR: { + unsigned int sel = fl_get_browser( form->citeBrsr ); + if( sel < 1 || sel > insetkeys.size() ) break; + + if( !holder.view->buffer()->isReadonly() ) { + setBibButtons( form, OFF ); + setCiteButtons( form, ON ); + } + + // Highlight the selected citeBrsr key in bibBrsr + vector::iterator it = + find( bibkeys.begin(), bibkeys.end(), insetkeys[sel-1] ); + + if (it != bibkeys.end()) { + int n = it - bibkeys.begin(); + fl_select_browser_line( form->bibBrsr, n+1 ); + fl_set_browser_topline( form->bibBrsr, n+1 ); + + // Put into infoBrsr the additional info associated with + // the selected citeBrsr key + fl_clear_browser( form->infoBrsr ); + fl_add_browser_line( form->infoBrsr, + bibkeys_info[n].second.c_str() ); + } + break; + + } case ADD: { + if( holder.view->buffer()->isReadonly() ) break; + + unsigned int sel = fl_get_browser( form->bibBrsr ); + if( sel < 1 || sel > bibkeys.size() ) break; + + // Add the selected bibBrsr key to citeBrsr + fl_addto_browser( form->citeBrsr, + bibkeys[sel-1].c_str() ); + insetkeys.push_back( bibkeys[sel-1] ); + + int n = insetkeys.size(); + fl_select_browser_line( form->citeBrsr, n ); + + setBibButtons( form, OFF ); + setCiteButtons( form, ON ); + + break; + + } case DELETE: { + if( holder.view->buffer()->isReadonly() ) break; + + unsigned int sel = fl_get_browser( form->citeBrsr ); + if( sel < 1 || sel > insetkeys.size() ) break; + + // Remove the selected key from citeBrsr + fl_delete_browser_line( form->citeBrsr, sel ) ; + insetkeys.erase( insetkeys.begin() + sel-1 ); + + setBibButtons( form, ON ); + setCiteButtons( form, OFF ); + break; + + } case UP: { + if( holder.view->buffer()->isReadonly() ) break; + + unsigned int sel = fl_get_browser( form->citeBrsr ); + if( sel < 2 || sel > insetkeys.size() ) break; + + // Move the selected key up one line + vector::iterator it = insetkeys.begin() + sel-1; + string tmp = *it; + + fl_delete_browser_line( form->citeBrsr, sel ); + insetkeys.erase( it ); + + fl_insert_browser_line( form->citeBrsr, sel-1, tmp.c_str() ); + fl_select_browser_line( form->citeBrsr, sel-1 ); + insetkeys.insert( it-1, tmp ); + setCiteButtons( form, ON ); + + break; + + } case DOWN: { + if( holder.view->buffer()->isReadonly() ) break; + + unsigned int sel = fl_get_browser( form->citeBrsr ); + if( sel < 1 || sel > insetkeys.size()-1 ) break; + + // Move the selected key down one line + vector::iterator it = insetkeys.begin() + sel-1; + string tmp = *it; + + fl_delete_browser_line( form->citeBrsr, sel ); + insetkeys.erase( it ); + + fl_insert_browser_line( form->citeBrsr, sel+1, tmp.c_str() ); + fl_select_browser_line( form->citeBrsr, sel+1 ); + insetkeys.insert( it+1, tmp ); + setCiteButtons( form, ON ); + + break; + + } case OK: { + // The inset contains a comma separated list of the keys + // in citeBrsr + if( !holder.view->buffer()->isReadonly() ) + { + string tmp; + for( unsigned int i = 0; i < insetkeys.size(); ++i ) { + if (i > 0) + tmp += ", "; + tmp += insetkeys[i]; + } + setContents( tmp ); + setOptions( fl_get_input(form->textAftr) ); + // shouldn't mark the buffer dirty unless something + // was actually altered + holder.view->updateInset( this, true ); + } + // fall through to Cancel + + } case CANCEL: { + fl_hide_form( form->form ); + break; + + } default: + break; + } +} + + +void InsetCitation::setSize( FD_citation_form * form, + int brsrHeight, bool bibPresent ) const +{ + int const infoHeight = 110; + int const otherHeight = 140; + brsrHeight = max( brsrHeight, 175 ); + int formHeight = brsrHeight + otherHeight; + + if( bibPresent ) formHeight += infoHeight + 30; + fl_set_form_size( form->form, 430, formHeight ); + + int ypos = 0; + fl_set_object_geometry( form->box, 0, ypos, 430, formHeight ); + ypos += 30; + fl_set_object_geometry( form->citeBrsr, 10, ypos, 180, brsrHeight ); + fl_set_object_geometry( form->bibBrsr, 240, ypos, 180, brsrHeight ); + fl_set_object_geometry( form->addBtn, 200, ypos, 30, 30 ); + ypos += 35; + fl_set_object_geometry( form->delBtn, 200, ypos, 30, 30 ); + ypos += 35; + fl_set_object_geometry( form->upBtn, 200, ypos, 30, 30 ); + ypos += 35; + fl_set_object_geometry( form->downBtn, 200, ypos, 30, 30 ); + + ypos = brsrHeight+30; // base of Citation/Bibliography browsers + + if( bibPresent ) { + ypos += 30; + fl_set_object_geometry( form->infoBrsr, 10, ypos, 410, infoHeight ); + fl_show_object( form->infoBrsr ); + ypos += infoHeight; + } + else + fl_hide_object( form->infoBrsr ); + + ypos += 20; + fl_set_object_geometry( form->textAftr, 100, ypos, 250, 30 ); + fl_set_object_geometry( form->ok, 230, ypos+50, 90, 30 ); + fl_set_object_geometry( form->cancel, 330, ypos+50, 90, 30 ); +} + + +void InsetCitation::setBibButtons( FD_citation_form * form, State status ) const +{ + switch (status) { + case ON: + { + fl_activate_object( form->addBtn ); + fl_set_object_lcol( form->addBtn, FL_BLACK ); + + break; + } + case OFF: + { + fl_deactivate_object( form->addBtn ); + fl_set_object_lcol( form->addBtn, FL_INACTIVE ); + } + default: + break; + } +} + + +void InsetCitation::setCiteButtons( FD_citation_form * form, State status ) const +{ + switch( status ) { + case ON: + { + fl_activate_object( form->delBtn ); + fl_set_object_lcol( form->delBtn, FL_BLACK ); + + unsigned int sel = fl_get_browser( form->citeBrsr ); + + if( sel != 1 ) { + fl_activate_object( form->upBtn ); + fl_set_object_lcol( form->upBtn, FL_BLACK ); + } else { + fl_deactivate_object( form->upBtn ); + fl_set_object_lcol( form->upBtn, FL_INACTIVE ); + } + + if( sel != fl_get_browser_maxline( form->citeBrsr ) ) { + fl_activate_object( form->downBtn ); + fl_set_object_lcol( form->downBtn, FL_BLACK ); + } else { + fl_deactivate_object( form->downBtn ); + fl_set_object_lcol( form->downBtn, FL_INACTIVE ); + } + + break; + } + case OFF: + { + fl_deactivate_object( form->delBtn ); + fl_set_object_lcol( form->delBtn, FL_INACTIVE ); + + fl_deactivate_object( form->upBtn ); + fl_set_object_lcol( form->upBtn, FL_INACTIVE ); + + fl_deactivate_object( form->downBtn ); + fl_set_object_lcol( form->downBtn, FL_INACTIVE ); + } + default: + break; + } +} + + +string InsetCitation::getScreenLabel() const +{ + string temp("["); + + temp += getContents(); + + if( !getOptions().empty() ) { + temp += ", " + getOptions(); + } + + return temp + ']'; +} diff --git a/src/insets/insetcite.h b/src/insets/insetcite.h new file mode 100644 index 0000000000..ee1581323b --- /dev/null +++ b/src/insets/insetcite.h @@ -0,0 +1,82 @@ +// -*- C++ -*- +/* This file is part of* + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2000 The LyX Team. + * + * ====================================================== */ + +#ifndef INSET_CITE_H +#define INSET_CITE_H + +#ifdef __GNUG__ +#pragma interface +#endif + +#include "insetcommand.h" +#include "bibforms.h" +#include + +class Buffer; + +/** Used to insert citations + */ +class InsetCitation: public InsetCommand { +public: + /// + enum State { + CANCEL, + OK, + DOWN, + UP, + DELETE, + ADD, + BIBBRSR, + CITEBRSR, + ON, + OFF + }; + /// + InsetCitation() : InsetCommand("cite") {} + /// + explicit + InsetCitation(string const & key, string const & note = string()); + /// + ~InsetCitation(); + /// + Inset * Clone() const { + return new InsetCitation(getContents(), getOptions()); + } + /// + string getScreenLabel()const; + /// + void Edit(BufferView *, int x, int y, unsigned int button); + /// + void callback( FD_citation_form *, State ); + /// + EDITABLE Editable() const { + return IS_EDITABLE; + } + /// + struct Holder { + InsetCitation * inset; + BufferView * view; + }; + +private: + /// + void setSize( FD_citation_form *, int, bool ) const; + /// + void setBibButtons( FD_citation_form *, State ) const; + /// + void setCiteButtons( FD_citation_form *, State ) const; + /// + void updateBrowser( FL_OBJECT *, std::vector const & ) const; + /// + Holder holder; +}; + +#endif // INSET_CITE_H diff --git a/src/insets/insetcommand.C b/src/insets/insetcommand.C index 69322ae890..e95b798a53 100644 --- a/src/insets/insetcommand.C +++ b/src/insets/insetcommand.C @@ -29,7 +29,7 @@ InsetCommand::InsetCommand() InsetCommand::InsetCommand(string const & cmd, string const & arg, string const & opt) - : command(cmd), options(opt), contents(arg) + : cmdname(cmd), options(opt), contents(arg) { } @@ -125,46 +125,46 @@ void InsetCommand::Write(ostream & os) const void InsetCommand::scanCommand(string const & cmd) { - string tcommand, toptions, tcontents; + string tcmdname, toptions, tcontents; if (cmd.empty()) return; - enum { WS, Command, Option, Content } state = WS; + enum { WS, CMDNAME, OPTION, CONTENT } state = WS; // Used to handle things like \command[foo[bar]]{foo{bar}} int nestdepth = 0; for (string::size_type i = 0; i < cmd.length(); ++i) { char c = cmd[i]; - if ((state == Command && c == ' ') || - (state == Command && c == '[') || - (state == Command && c == '{')) { + if ((state == CMDNAME && c == ' ') || + (state == CMDNAME && c == '[') || + (state == CMDNAME && c == '{')) { state = WS; } - if ((state == Option && c == ']') || - (state == Content && c == '}')) { + if ((state == OPTION && c == ']') || + (state == CONTENT && c == '}')) { if (nestdepth == 0) { state = WS; } else { --nestdepth; } } - if ((state == Option && c == '[') || - (state == Content && c == '{')) { + if ((state == OPTION && c == '[') || + (state == CONTENT && c == '{')) { ++nestdepth; } switch (state) { - case Command: tcommand += c; break; - case Option: toptions += c; break; - case Content: tcontents += c; break; + case CMDNAME: tcmdname += c; break; + case OPTION: toptions += c; break; + case CONTENT: tcontents += c; break; case WS: if (c == '\\') { - state = Command; + state = CMDNAME; } else if (c == '[') { - state = Option; + state = OPTION; nestdepth = 0; // Just to be sure } else if (c == '{') { - state = Content; + state = CONTENT; nestdepth = 0; // Just to be sure } break; @@ -172,7 +172,7 @@ void InsetCommand::scanCommand(string const & cmd) } // Don't mess with this. - if (!tcommand.empty()) command = tcommand; + if (!tcmdname.empty()) cmdname = tcmdname; if (!toptions.empty()) options = toptions; if (!tcontents.empty()) setContents(tcontents); // setContents is overloaded in InsetInclude @@ -224,14 +224,14 @@ int InsetCommand::DocBook(ostream &) const Inset * InsetCommand::Clone() const { - return new InsetCommand(command, contents, options); + return new InsetCommand(cmdname, contents, options); } string InsetCommand::getCommand() const { string s; - if (!command.empty()) s += "\\"+command; + if (!cmdname.empty()) s += "\\"+cmdname; if (!options.empty()) s += "["+options+']'; s += "{"+contents+'}'; return s; diff --git a/src/insets/insetcommand.h b/src/insets/insetcommand.h index 449d0f19ed..ed473534ea 100644 --- a/src/insets/insetcommand.h +++ b/src/insets/insetcommand.h @@ -74,12 +74,12 @@ public: { return getCommand(); } - + /// Build the complete LaTeX command string getCommand() const; /// string const & getCmdName() const { - return command; + return cmdname; } /// string const & getOptions() const { @@ -91,7 +91,7 @@ public: } /// void setCmdName(string const & n) { - command = n; + cmdname = n; } /// void setOptions(string const & o) { @@ -101,9 +101,13 @@ public: virtual void setContents(string const & c) { contents = c; } -protected: + /// + void addContents(string const & c) { + contents += c; + } +private: /// - string command; + string cmdname; /// string options; /// diff --git a/src/insets/insetinclude.C b/src/insets/insetinclude.C index 78f32359a9..9594984db7 100644 --- a/src/insets/insetinclude.C +++ b/src/insets/insetinclude.C @@ -26,6 +26,7 @@ using std::ostream; using std::endl; using std::vector; +using std::pair; extern BufferView * current_view; @@ -216,7 +217,7 @@ InsetInclude::~InsetInclude() Inset * InsetInclude::Clone() const { - InsetInclude * ii = new InsetInclude (contents, master); + InsetInclude * ii = new InsetInclude (getContents(), master); ii->setNoLoad(isNoLoad()); // By default, the newly created inset is of `include' type, // so we do not test this case. @@ -241,7 +242,7 @@ void InsetInclude::Edit(BufferView * bv, int, int, unsigned int) } form->include->u_vdata = this; - fl_set_input(form->input, contents.c_str()); + fl_set_input(form->input, getContents().c_str()); fl_set_button(form->flag1, int(isNoLoad())); fl_set_button(form->flag2, int(isInput())); fl_set_button(form->flag3, int(isInclude())); @@ -302,10 +303,10 @@ string InsetInclude::getScreenLabel() const } else temp += _("Include"); temp += ": "; - if (contents.empty()) { + if (getContents().empty()) { temp+= "???"; } else { - temp+= contents; + temp+= getContents(); } return temp; } @@ -314,7 +315,7 @@ string InsetInclude::getScreenLabel() const void InsetInclude::setContents(string const & c) { InsetCommand::setContents(c); - filename = MakeAbsPath(contents, + filename = MakeAbsPath(getContents(), OnlyPath(getMasterFilename())); } @@ -337,12 +338,12 @@ int InsetInclude::Latex(ostream & os, bool /*fragile*/, bool /*fs*/) const { // Do nothing if no file name has been specified - if (contents.empty()) + if (getContents().empty()) return 0; // Use += to force a copy of contents (JMarc) // How does that force anything? (Lgb) - string incfile(contents); + string incfile(getContents()); if (loadIfNeeded()) { Buffer * tmp = bufferlist.getBuffer(getFileName()); @@ -381,21 +382,21 @@ int InsetInclude::Latex(ostream & os, } if (isVerb()) { - os << '\\' << command << '{' << incfile << '}'; + os << '\\' << getCmdName() << '{' << incfile << '}'; } else if (isInput()) { // \input wants file with extension (default is .tex) if (!IsLyXFilename(getFileName())) { - os << '\\' << command << '{' << incfile << '}'; + os << '\\' << getCmdName() << '{' << incfile << '}'; } else { - os << '\\' << command << '{' + os << '\\' << getCmdName() << '{' << ChangeExtension(incfile, ".tex") << '}'; } } else { // \include don't want extension and demands that the // file really have .tex - os << '\\' << command << '{' + os << '\\' << getCmdName() << '{' << ChangeExtension(incfile, string()) << '}'; } @@ -436,16 +437,16 @@ vector InsetInclude::getLabelList() const } -string InsetInclude::getKeys(char delim) const +vector > InsetInclude::getKeys() const { - string lst; + vector > keys; if (loadIfNeeded()) { Buffer *tmp = bufferlist.getBuffer(getFileName()); tmp->setParentName(""); - lst = tmp->getBibkeyList(delim); + keys = tmp->getBibkeyList(); tmp->setParentName(getMasterFilename()); } - return lst; + return keys; } diff --git a/src/insets/insetinclude.h b/src/insets/insetinclude.h index b430c521d2..b2839b03f7 100644 --- a/src/insets/insetinclude.h +++ b/src/insets/insetinclude.h @@ -43,7 +43,7 @@ public: /// This returns the list of labels on the child buffer std::vector getLabelList() const; /// This returns the list of bibkeys on the child buffer - string getKeys(char delim) const; + std::vector< std::pair > getKeys() const; /// void Edit(BufferView *, int x, int y, unsigned int button); /// diff --git a/src/insets/insetindex.h b/src/insets/insetindex.h index 82642abd31..25e2c89d6a 100644 --- a/src/insets/insetindex.h +++ b/src/insets/insetindex.h @@ -36,7 +36,7 @@ public: /// ~InsetIndex(); /// - Inset * Clone() const { return new InsetIndex(contents);} + Inset * Clone() const { return new InsetIndex(getContents());} /// void Edit(BufferView *, int, int, unsigned int); /// diff --git a/src/insets/insetlabel.C b/src/insets/insetlabel.C index ea7b8e6e1e..02f3930d4a 100644 --- a/src/insets/insetlabel.C +++ b/src/insets/insetlabel.C @@ -42,7 +42,7 @@ Inset * InsetLabel::Clone() const vector InsetLabel::getLabelList() const { - return vector(1,contents); + return vector(1,getContents()); } @@ -53,15 +53,14 @@ void InsetLabel::Edit(BufferView * bv, int, int, unsigned int) return; } - pair result = askForText(_("Enter label:"), - contents); + pair result = askForText(_("Enter label:"), getContents()); if (result.first) { string new_contents = frontStrip(strip(result.second)); if (!new_contents.empty() && - contents != new_contents) { + getContents() != new_contents) { bv->buffer()->markDirty(); - bool flag = bv->ChangeRefs(contents,new_contents); - contents = new_contents; + bool flag = bv->ChangeRefs(getContents(),new_contents); + setContents( new_contents ); bv->text->RedoParagraph(); if (flag) { bv->redraw(); diff --git a/src/lyx_gui_misc.C b/src/lyx_gui_misc.C index 88ded8a2e4..42b694b6e1 100644 --- a/src/lyx_gui_misc.C +++ b/src/lyx_gui_misc.C @@ -175,8 +175,8 @@ void CloseAllBufferRelatedPopups() } } if (citation_form) { - if (citation_form->citation_form->visible) { - fl_hide_form(citation_form->citation_form); + if (citation_form->form->visible) { + fl_hide_form(citation_form->form); } } if (bibitem_form) { @@ -323,8 +323,8 @@ void updateAllVisibleBufferRelatedPopups() } #endif if (citation_form) { - if (citation_form->citation_form->visible) { - fl_hide_form(citation_form->citation_form); + if (citation_form->form->visible) { + fl_hide_form(citation_form->form); } } if (bibitem_form) { diff --git a/src/lyxfunc.C b/src/lyxfunc.C index ed4d0e16bb..c827ce2d52 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -49,6 +49,7 @@ using std::istringstream; #include "insets/insetindex.h" #include "insets/insetinclude.h" #include "insets/insetbib.h" +#include "insets/insetcite.h" #include "insets/insettext.h" #include "insets/insetert.h" #include "insets/insetgraphics.h" diff --git a/src/paragraph.C b/src/paragraph.C index 6f1986c8ef..6f474849d2 100644 --- a/src/paragraph.C +++ b/src/paragraph.C @@ -46,10 +46,7 @@ int tex_code_break_column = 72; // needs non-zero initialization. set later. // this is a bad idea, but how can LyXParagraph find its buffer to get // parameters? (JMarc) extern BufferView * current_view; - - -// ale970405 -extern string bibitemWidthest(Painter &); +extern string bibitemWidest(Painter &); // this is a minibuffer static char minibuffer_char; @@ -3644,7 +3641,7 @@ LyXParagraph * LyXParagraph::TeXEnvironment(ostream & os, TexRow & texrow, } else if (style.labeltype == LABEL_BIBLIO) { // ale970405 os << "\\begin{" << style.latexname() << "}{" - << bibitemWidthest(current_view->painter()) + << bibitemWidest(current_view->painter()) << "}\n"; } else if (style.latextype == LATEX_ITEM_ENVIRONMENT) { #ifdef FANCY_FOOTNOTE_CODE diff --git a/src/text.C b/src/text.C index f5739615e8..02d3534389 100644 --- a/src/text.C +++ b/src/text.C @@ -40,9 +40,6 @@ using std::endl; using std::pair; static const int LYX_PAPER_MARGIN = 20; - - -// ale070405 extern int bibitemMaxWidth(Painter &, LyXFont const &); static int iso885968x[] = { -- 2.39.2