* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-1999 The LyX Team.
+ * Copyright 1995-2000 The LyX Team.
*
* ====================================================== */
#include "LyXView.h"
#include "buffer.h"
#include "lyxserver.h"
-#include "lyxdraw.h"
#include "lyxrc.h"
#include "gettext.h"
#include "lyx_gui_misc.h"
-#include "lyx_cb.h"
#include "lyxlookup.h"
#include "bufferlist.h"
+#include "language.h"
#ifdef TWO_COLOR_ICONS
#include "banner_bw.xbm"
#include "banner.xpm"
#endif
-FD_form_title *fd_form_title;
-FD_form_paragraph *fd_form_paragraph;
-FD_form_paragraph_extra *fd_form_paragraph_extra;
-FD_form_search *fd_form_search;
-FD_form_character *fd_form_character;
-FD_form_document *fd_form_document;
-FD_form_paper *fd_form_paper;
-FD_form_table_options *fd_form_table_options;
-FD_form_table_extra *fd_form_table_extra;
-FD_form_quotes *fd_form_quotes;
-FD_form_preamble *fd_form_preamble;
-FD_form_table *fd_form_table;
-FD_form_print *fd_form_print;
-FD_form_sendto *fd_form_sendto;
-FD_form_figure *fd_form_figure;
-FD_form_screen *fd_form_screen;
-FD_form_toc *fd_form_toc;
-FD_form_ref *fd_form_ref;
-FD_LaTeXOptions *fd_latex_options; // from latexoptions.h
-FD_LaTeXLog *fd_latex_log; // from latexoptions.h
-Combox *combo_language;
-
-extern LyXServer *lyxserver;
+FD_form_title * fd_form_title;
+FD_form_paragraph * fd_form_paragraph;
+FD_form_paragraph_extra * fd_form_paragraph_extra;
+FD_form_character * fd_form_character;
+FD_form_document * fd_form_document;
+FD_form_paper * fd_form_paper;
+FD_form_table_options * fd_form_table_options;
+FD_form_table_extra * fd_form_table_extra;
+FD_form_quotes * fd_form_quotes;
+FD_form_preamble * fd_form_preamble;
+FD_form_table * fd_form_table;
+FD_form_print * fd_form_print;
+FD_form_sendto * fd_form_sendto;
+FD_form_figure * fd_form_figure;
+FD_form_screen * fd_form_screen;
+FD_form_toc * fd_form_toc;
+FD_form_ref * fd_form_ref;
+FD_LaTeXOptions * fd_latex_options; // from latexoptions.h
+FD_LaTeXLog * fd_latex_log; // from latexoptions.h
+Combox * combo_language;
+
+extern LyXServer * lyxserver;
extern bool finished; // flag, that we are quitting the program
extern BufferList bufferlist;
{"-height", "*.height", XrmoptionSepArg, "510"},
{"-xpos", "*.xpos", XrmoptionSepArg, "-1"},
{"-ypos", "*.ypos", XrmoptionSepArg, "-1"},
- {"-Reverse", "*.Reverse", XrmoptionNoArg, "1"},
- {"-Mono", "*.Mono", XrmoptionNoArg, "1"},
- {"-FastSelection", "*.FastSelection", XrmoptionNoArg, "1"},
{"-MathColor", "*.MathColor", XrmoptionSepArg, "blue"},
{"-MathFrameColor", "*.MathFrameColor", XrmoptionSepArg, "magenta"},
{"-FootColor", "*.FootColor", XrmoptionSepArg, "red"},
static int height;
static int xpos;
static int ypos;
-int reverse_video;
-int mono_video;
-int fast_selection;
bool cursor_follows_scrollbar;
char math_color[32];
char math_frame_color[32];
FL_resource res[] =
{
- {"width", "widthClass", FL_INT, &width, "690"},
- {"height", "heightClass", FL_INT, &height, "510"},
- {"xpos", "xposClass", FL_INT, &xpos, "-1"},
- {"ypos", "yposClass", FL_INT, &ypos, "-1"},
- {"Reverse", "reverseClass", FL_INT, &reverse_video, "0"},
- {"Mono", "monoClass", FL_INT, &mono_video, "0"},
- {"FastSelection", "selectionClass", FL_INT, &fast_selection, "0"},
+ {"width", "widthClass", FL_INT, &width, "690", 0},
+ {"height", "heightClass", FL_INT, &height, "510", 0},
+ {"xpos", "xposClass", FL_INT, &xpos, "-1", 0},
+ {"ypos", "yposClass", FL_INT, &ypos, "-1", 0},
{"MathColor", "colorClass", FL_STRING, math_color, "blue", 31},
{"MathFrameColor", "colorClass", FL_STRING, math_frame_color, "magenta", 31},
{"FootColor", "colorClass", FL_STRING, foot_color, "red", 31},
};
-extern "C" int LyX_XErrHandler(Display *display, XErrorEvent *xeev)
+extern "C" int LyX_XErrHandler(Display * display, XErrorEvent * xeev)
{
//#warning Please see if you can trigger this!
// emergency save
XGetErrorText(display, xeev->error_code, etxt, 512);
lyxerr << etxt << endl;
// By doing an abort we get a nice backtrace. (hopefully)
- abort();
+ lyx::abort();
return 0; // Solaris CC wants us to return something
}
-LyXGUI::LyXGUI(LyX *owner, int *argc, char *argv[], bool GUI)
- :_owner(owner)
+LyXGUI::LyXGUI(LyX * owner, int * argc, char * argv[], bool GUI)
+ : _owner(owner)
{
gui = GUI;
if (!gui)
static const int num_res = sizeof(res)/sizeof(FL_resource);
fl_initialize(argc, argv, "LyX", cmdopt, num_res);
fl_get_app_resources(res, num_res);
- Display *display = fl_get_display();
+
+ Display * display = fl_get_display();
if (!display) {
lyxerr << "LyX: unable to access X display, exiting" << endl;
exit(1);
// Make sure default screen is not larger than monitor
if (width == 690 && height == 510) {
- Screen * scr = (DefaultScreenOfDisplay(fl_get_display()));
- if (HeightOfScreen(scr)-24<height)
- height = HeightOfScreen(scr)-24;
- if (WidthOfScreen(scr)-8<width)
- width = WidthOfScreen(scr)-8;
+ Screen * scr = DefaultScreenOfDisplay(fl_get_display());
+ if (HeightOfScreen(scr) - 24 < height)
+ height = HeightOfScreen(scr) - 24;
+ if (WidthOfScreen(scr) - 8 < width)
+ width = WidthOfScreen(scr) - 8;
}
}
// A destructor is always necessary (asierra-970604)
-LyXGUI::~LyXGUI() {
+LyXGUI::~LyXGUI()
+{
// Lyxserver was created in this class so should be destroyed
// here. asierra-970604
- if (lyxserver) {
- delete lyxserver;
- lyxserver = 0;
- }
+ delete lyxserver;
+ lyxserver = 0;
CloseLyXLookup();
-
}
return;
create_forms();
-
+
+ if (lyxrc.font_norm_menu.empty())
+ lyxrc.font_norm_menu = lyxrc.font_norm;
// Set the font name for popups and menus
- string menufontname = lyxrc->menu_font_name
+ string menufontname = lyxrc.menu_font_name
+ "-*-*-*-?-*-*-*-*-"
- + lyxrc->font_norm;
+ + lyxrc.font_norm_menu;
// "?" means "scale that font"
- string popupfontname = lyxrc->popup_font_name
+ string popupfontname = lyxrc.popup_font_name
+ "-*-*-*-?-*-*-*-*-"
- + lyxrc->font_norm;
-#if FL_REVISION > 85
+ + lyxrc.font_norm_menu;
+
if (fl_set_font_name(FL_BOLD_STYLE, menufontname.c_str()) < 0)
-#else
- int nfonts;
- char ** list = XListFonts(fl_display, menufontname.c_str(),
- 1, &nfonts);
- XFreeFontNames(list);
- if (nfonts > 0)
- fl_set_font_name(FL_BOLD_STYLE, menufontname.c_str());
- else
-#endif
lyxerr << "Could not set menu font to "
<< menufontname << endl;
-#if FL_REVISION > 85
if (fl_set_font_name(FL_NORMAL_STYLE, popupfontname.c_str()) < 0)
-#else
- list = XListFonts(fl_display, popupfontname.c_str(),
- 1, &nfonts);
- XFreeFontNames(list);
- if (nfonts > 0)
- fl_set_font_name(FL_NORMAL_STYLE, popupfontname.c_str());
- else
-#endif
lyxerr << "Could not set popup font to "
<< popupfontname << endl;
// the print form
fl_set_input(fd_form_print->input_printer,
- lyxrc->printer.c_str());
+ lyxrc.printer.c_str());
// the sendto form
- if (!lyxrc->custom_export_command.empty())
+ if (!lyxrc.custom_export_command.empty())
fl_set_input(fd_form_sendto->input_cmd,
- lyxrc->custom_export_command.c_str());
- if (lyxrc->custom_export_format == "lyx")
+ lyxrc.custom_export_command.c_str());
+ if (lyxrc.custom_export_format == "lyx")
fl_set_button(fd_form_sendto->radio_ftype_lyx, 1);
- else if (lyxrc->custom_export_format == "tex")
+ else if (lyxrc.custom_export_format == "tex")
fl_set_button(fd_form_sendto->radio_ftype_latex, 1);
- else if (lyxrc->custom_export_format == "dvi")
+ else if (lyxrc.custom_export_format == "dvi")
fl_set_button(fd_form_sendto->radio_ftype_dvi, 1);
- else if (lyxrc->custom_export_format == "ps")
+ else if (lyxrc.custom_export_format == "ps")
fl_set_button(fd_form_sendto->radio_ftype_ps, 1);
- else if (lyxrc->custom_export_format == "ascii")
+ else if (lyxrc.custom_export_format == "ascii")
fl_set_button(fd_form_sendto->radio_ftype_ascii, 1);
// Update parameters.
// in 0.12 the initialisation of the LyXServer must be done here
// 0.13 it should be moved again...
- lyxserver = new LyXServer(lyxViews->getLyXFunc(), lyxrc->lyxpipes);
-
- // This is to make sure we get the selection color
- getGC(gc_selection);
- // This is to make sure we set the background_pixels
- getGC(gc_clear);
+ lyxserver = new LyXServer(lyxViews->getLyXFunc(), lyxrc.lyxpipes);
}
//
// the title form
- fd_form_title = create_form_form_title();
- fl_set_form_dblbuffer(fd_form_title->form_title, 1); // use dbl buffer
- fl_set_form_atclose(fd_form_title->form_title, CancelCloseBoxCB, 0);
- fl_addto_form(fd_form_title->form_title);
+ if (lyxrc.show_banner) {
+ fd_form_title = create_form_form_title();
+ fl_set_form_dblbuffer(fd_form_title->form_title, 1); // use dbl buffer
+ fl_set_form_atclose(fd_form_title->form_title, CancelCloseBoxCB, 0);
+ fl_addto_form(fd_form_title->form_title);
#ifdef TWO_COLOR_ICONS
- FL_OBJECT *obj = fl_add_bitmapbutton(FL_NORMAL_BUTTON, 0, 0, 425, 290, "");
- fl_set_bitmapbutton_data(obj, banner_bw_width,
- banner_bw_height, banner_bw_bits);
- fl_set_object_color(obj, FL_WHITE, FL_BLACK);
+ FL_OBJECT *obj = fl_add_bitmapbutton(FL_NORMAL_BUTTON, 0, 0, 425, 290, "");
+ fl_set_bitmapbutton_data(obj, banner_bw_width,
+ banner_bw_height, banner_bw_bits);
+ fl_set_object_color(obj, FL_WHITE, FL_BLACK);
#else
- FL_OBJECT *obj = fl_add_pixmapbutton(FL_NORMAL_BUTTON, 0, 0, 425, 290, "");
- fl_set_pixmapbutton_data(obj, (char**)banner);
-#if FL_REVISION > 85
- fl_set_pixmapbutton_focus_outline(obj, 3);
-#endif
+ FL_OBJECT *obj = fl_add_pixmapbutton(FL_NORMAL_BUTTON, 0, 0, 425, 290, "");
+ fl_set_pixmapbutton_data(obj, const_cast<char **>(banner));
+
+ fl_set_pixmapbutton_focus_outline(obj, 3);
#endif
- fl_set_button_shortcut(obj, "^M ^[", 1);
- fl_set_object_boxtype(obj, FL_NO_BOX);
- fl_set_object_callback(obj, TimerCB, 0);
-
- obj = fl_add_text(FL_NORMAL_TEXT, 248, 265, 170, 16, LYX_VERSION);
- fl_set_object_lsize(obj, FL_NORMAL_SIZE);
+ fl_set_button_shortcut(obj, "^M ^[", 1);
+ fl_set_object_boxtype(obj, FL_NO_BOX);
+ fl_set_object_callback(obj, TimerCB, 0);
+
+ obj = fl_add_text(FL_NORMAL_TEXT, 248, 265, 170, 16, LYX_VERSION);
+ fl_set_object_lsize(obj, FL_NORMAL_SIZE);
#ifdef TWO_COLOR_ICONS
- fl_set_object_color(obj, FL_WHITE, FL_WHITE);
- fl_set_object_lcol(obj, FL_BLACK);
+ fl_set_object_color(obj, FL_WHITE, FL_WHITE);
+ fl_set_object_lcol(obj, FL_BLACK);
#else
// fl_set_object_color(obj, FL_WHITE, FL_WHITE);
// fl_set_object_lcol(obj, FL_BLACK);
- fl_mapcolor(FL_FREE_COL2, 0x05, 0x2e, 0x4c);
- fl_mapcolor(FL_FREE_COL3, 0xe1, 0xd2, 0x9b);
- fl_set_object_color(obj, FL_FREE_COL2, FL_FREE_COL2);
- fl_set_object_lcol(obj, FL_FREE_COL3);
+ fl_mapcolor(FL_FREE_COL2, 0x05, 0x2e, 0x4c);
+ fl_mapcolor(FL_FREE_COL3, 0xe1, 0xd2, 0x9b);
+ fl_set_object_color(obj, FL_FREE_COL2, FL_FREE_COL2);
+ fl_set_object_lcol(obj, FL_FREE_COL3);
#endif
- fl_set_object_lalign(obj, FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
- fl_set_object_lstyle(obj, FL_BOLD_STYLE);
- fl_end_form();
-
+ fl_set_object_lalign(obj, FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
+ fl_set_object_lstyle(obj, FL_BOLD_STYLE);
+ fl_end_form();
+ }
+
// the paragraph form
fd_form_paragraph = create_form_form_paragraph();
fl_set_form_atclose(fd_form_paragraph->form_paragraph,
fl_set_input_return(fd_form_paragraph_extra->input_pextra_widthp,
FL_RETURN_ALWAYS);
- // the search form
- fd_form_search = create_form_form_search();
- fl_set_form_atclose(fd_form_search->form_search,
- CancelCloseBoxCB, 0);
-
// the character form
fd_form_character = create_form_form_character();
fl_set_form_atclose(fd_form_character->form_character,
fl_set_counter_precision(fd_form_document->slider_tocdepth, 0);
fl_addto_form(fd_form_document->form_document);
combo_language = new Combox(FL_COMBOX_DROPLIST);
- FL_OBJECT *ob = fd_form_document->choice_language;
- combo_language->add(ob->x, ob->y, ob->w, ob->h, 200);
+ FL_OBJECT * ob = fd_form_document->choice_language;
+ combo_language->add(ob->x, ob->y, ob->w, ob->h, 250);
combo_language->shortcut("#G", 1);
fl_end_form();
+#if 0
int n; // declared here because DEC cxx does not like multiple
// declarations of variables in for() loops (JMarc)
- for (n = 0; tex_babel[n][0]; n++) {
+ for (n = 0; tex_babel[n][0]; ++n) {
combo_language->addto(tex_babel[n]);
}
+#else
+ // "default" is not part of the languages array any more.
+ combo_language->addto("default");
+ for(Languages::const_iterator cit = languages.begin();
+ cit != languages.end(); ++cit) {
+ combo_language->addto((*cit).second.lang.c_str());
+ }
+#endif
// not really necessary, but we can do it anyway.
fl_addto_choice(fd_form_document->choice_fontsize, "default|10|11|12");
-
- for (n = 0; tex_fonts[n][0]; n++) {
+ int n;
+ for (n = 0; tex_fonts[n][0]; ++n) {
fl_addto_choice(fd_form_document->choice_fonts, tex_fonts[n]);
}
fl_addto_choice(fd_form_document->choice_inputenc,
"default|latin1|latin2|latin5"
- "|koi8-r|koi8-u|cp866|cp1251");
+ "|koi8-r|koi8-u|cp866|cp1251|iso88595");
- for (n = 0; tex_graphics[n][0]; n++) {
+ for (n = 0; tex_graphics[n][0]; ++n) {
fl_addto_choice(fd_form_document->choice_postscript_driver,
tex_graphics[n]);
}
// Did we get a valid position?
if (xpos>= 0 && ypos>= 0) {
lyxViews->setPosition(xpos, ypos);
- // show the title form in the middle of the main form
- fl_set_form_position(fd_form_title->form_title,
- abs(xpos + (width/2) - (370 / 2)),
- abs(ypos + (height/2) - (290 / 2)));
- // The use of abs() above is a trick to ensure valid positions
- main_placement = FL_PLACE_POSITION;
- title_placement = FL_PLACE_GEOMETRY;
+ if (lyxrc.show_banner) {
+ // show the title form in the middle of the main form
+ fl_set_form_position(fd_form_title->form_title,
+ abs(xpos + (width/2) - (370 / 2)),
+ abs(ypos + (height/2) - (290 / 2)));
+ title_placement = FL_PLACE_GEOMETRY;
+ // The use of abs() above is a trick to ensure
+ // valid positions
+ }
+ main_placement = FL_PLACE_POSITION;
}
lyxViews->show(main_placement, FL_FULLBORDER, "LyX");
- fl_show_form(fd_form_title->form_title,
- title_placement, FL_NOBORDER,
- _("LyX Banner"));
- fl_redraw_form(fd_form_title->form_title);
- fl_raise_form(fd_form_title->form_title);
-
- // Show the title form at most 7 secs (lowered from 10 secs)
- fl_set_timer(fd_form_title->timer_title, 7);
+ if (lyxrc.show_banner) {
+ fl_show_form(fd_form_title->form_title,
+ title_placement, FL_NOBORDER,
+ _("LyX Banner"));
+ fl_redraw_form(fd_form_title->form_title);
+ fl_raise_form(fd_form_title->form_title);
+
+ // Show the title form at most 7 secs (lowered from 10 secs)
+ fl_set_timer(fd_form_title->timer_title, 7);
+ }
}
}
-void LyXGUI::regBuf(Buffer *b)
+void LyXGUI::regBuf(Buffer * b)
{
- lyxViews->currentView()->buffer(b);
+ lyxViews->view()->buffer(b);
}