#pragma implementation
#endif
+#ifdef KDEGUI
+# include <kapp.h>
+#endif
+
#include <fcntl.h>
-#include FORMS_H_LOCATION
#include "lyx_gui.h"
+#include FORMS_H_LOCATION
#include "combox.h"
#include "lyx.h"
#include "form1.h"
#include "lyxlookup.h"
#include "bufferlist.h"
#include "language.h"
+#include "ColorHandler.h"
#ifdef TWO_COLOR_ICONS
#include "banner_bw.xbm"
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_LaTeXOptions * fd_latex_options; // from latexoptions.h
FD_LaTeXLog * fd_latex_log; // from latexoptions.h
Combox * combo_language;
+Combox * combo_language2;
extern LyXServer * lyxserver;
extern bool finished; // flag, that we are quitting the program
{"-width", "*.width", XrmoptionSepArg, "690"},
{"-height", "*.height", XrmoptionSepArg, "510"},
{"-xpos", "*.xpos", XrmoptionSepArg, "-1"},
- {"-ypos", "*.ypos", XrmoptionSepArg, "-1"},
- {"-MathColor", "*.MathColor", XrmoptionSepArg, "blue"},
- {"-MathFrameColor", "*.MathFrameColor", XrmoptionSepArg, "magenta"},
- {"-FootColor", "*.FootColor", XrmoptionSepArg, "red"},
- {"-NewLineColor", "*.NewLineColor", XrmoptionSepArg, "red"},
- {"-LabelColor", "*.LabelColor", XrmoptionSepArg, "palegreen"},
- {"-FillColor", "*.FillColor", XrmoptionSepArg, "magenta"},
- {"-OnOffLineColor", "*.OnOffLineColor", XrmoptionSepArg, "magenta"},
- {"-LatexColor", "*.LatexColor", XrmoptionSepArg, "red"},
- {"-NoteColor", "*.NoteColor", XrmoptionSepArg, "yellow"},
- {"-NoteFrameColor", "*.NoteFrameColor", XrmoptionSepArg, "black"},
- {"-LightedColor", "*.LightedColor", XrmoptionSepArg, "gray80"},
- {"-BackgroundColor", "*.BackgroundColor", XrmoptionSepArg, "linen"},
- {"-SelectionColor", "*.SelectionColor", XrmoptionSepArg, "lightblue"}
+ {"-ypos", "*.ypos", XrmoptionSepArg, "-1"}
};
static int width;
static int xpos;
static int ypos;
bool cursor_follows_scrollbar;
-char math_color[32];
-char math_frame_color[32];
-char foot_color[32];
-char new_line_color[32];
-char label_color[32];
-char fill_color[32];
-char on_off_line_color[32];
-char latex_color[32];
-char note_color[32];
-char note_frame_color[32];
-char lighted_color[32];
-string background_color;
-char b_c[32];
-char selection_color[32];
FL_resource res[] =
{"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},
- {"NewLineColor", "colorClass", FL_STRING, new_line_color, "red", 31},
- {"LabelColor", "colorClass", FL_STRING, label_color, "palegreen", 31},
- {"FillColor", "colorClass", FL_STRING, fill_color, "magenta", 31},
- {"OnOffLineColor", "colorClass", FL_STRING, on_off_line_color, "magenta", 31},
- {"LatexColor", "colorClass", FL_STRING, latex_color, "red", 31},
- {"NoteColor", "colorClass", FL_STRING, note_color, "yellow", 31},
- {"NoteFrameColor", "colorClass", FL_STRING, note_frame_color, "black", 31},
- {"LightedColor", "colorClass", FL_STRING, lighted_color, "gray80", 31},
- {"BackgroundColor", "colorClass", FL_STRING, b_c, "linen", 31},
- {"SelectionColor", "colorClass", FL_STRING, selection_color, "lightblue", 31}
+ {"ypos", "yposClass", FL_INT, &ypos, "-1", 0}
};
LyXGUI::LyXGUI(LyX * owner, int * argc, char * argv[], bool GUI)
- : _owner(owner)
+ : _owner(owner), lyxViews(0)
{
gui = GUI;
if (!gui)
// X Error handler install goes here
XSetErrorHandler(LyX_XErrHandler);
- background_color = b_c;
-
// Make sure default screen is not larger than monitor
if (width == 690 && height == 510) {
Screen * scr = DefaultScreenOfDisplay(fl_get_display());
width = WidthOfScreen(scr) - 8;
}
+ // Initialize the LyXColorHandler
+ lyxColorHandler = new LyXColorHandler;
}
// here. asierra-970604
delete lyxserver;
lyxserver = 0;
+ delete lyxViews;
+ lyxViews = 0;
CloseLyXLookup();
}
+ "-*-*-*-?-*-*-*-*-"
+ lyxrc.font_norm_menu;
- if (fl_set_font_name(FL_BOLD_STYLE, menufontname.c_str()) < 0)
+ int bold = fl_set_font_name(FL_BOLD_STYLE, menufontname.c_str());
+ int normal = fl_set_font_name(FL_NORMAL_STYLE, popupfontname.c_str());
+ if (bold < 0)
lyxerr << "Could not set menu font to "
<< menufontname << endl;
- if (fl_set_font_name(FL_NORMAL_STYLE, popupfontname.c_str()) < 0)
+ if (normal < 0)
lyxerr << "Could not set popup font to "
<< popupfontname << endl;
+ if (bold < 0 && normal < 0) {
+ lyxerr << "Using 'helvetica' font for menus" << endl;
+ bold = fl_set_font_name(FL_BOLD_STYLE,
+ "-*-helvetica-bold-r-*-*-*-?-*-*-*-*-iso8859-1");
+ normal = fl_set_font_name(FL_NORMAL_STYLE,
+ "-*-helvetica-medium-r-*-*-*-?-*-*-*-*-iso8859-1");
+ if (bold < 0 && normal < 0) {
+ lyxerr << "Could not find helvetica font. Using 'fixed'." << endl;
+ normal = fl_set_font_name(FL_NORMAL_STYLE, "fixed");
+ }
+ }
+
// put here (after fl_initialize) to avoid segfault. Cannot be done
// in setDefaults() (Matthias 140496)
// Moved from ::LyXGUI to ::init to allow popup font customization
// all lyxrc settings has to be done here as lyxrc has not yet
// been read when the GUI is created (Jug)
- // the print form
- fl_set_input(fd_form_print->input_printer,
- lyxrc.printer.c_str());
-
// the sendto form
if (!lyxrc.custom_export_command.empty())
fl_set_input(fd_form_sendto->input_cmd,
FL_RETURN_ALWAYS);
fl_set_input_return(fd_form_paragraph_extra->input_pextra_widthp,
FL_RETURN_ALWAYS);
+ lyxerr[Debug::INIT] << "Initializing form_paragraph...done" << endl;
// the character form
fd_form_character = create_form_form_character();
fl_set_form_minsize(fd_form_character->form_character,
fd_form_character->form_character->w,
fd_form_character->form_character->h);
+ lyxerr[Debug::INIT] << "Initializing form_character::combox..." << endl;
+ fl_addto_form(fd_form_character->form_character);
+ combo_language2 = new Combox(FL_COMBOX_DROPLIST);
+ FL_OBJECT * ob = fd_form_character->choice_language;
+ combo_language2->add(ob->x, ob->y, ob->w, ob->h, 250);
+ combo_language2->shortcut("#L", 1);
+ fl_end_form();
+ lyxerr[Debug::INIT] << "Initializing form_character...done" << endl;
// the document form
fd_form_document = create_form_form_document();
fl_addto_choice(fd_form_document->choice_spacing,
_(" Single | OneHalf | Double | Other "));
- fl_set_counter_bounds(fd_form_document->slider_secnumdepth,-1, 5);
+ fl_set_counter_bounds(fd_form_document->slider_secnumdepth,-2, 5);
fl_set_counter_bounds(fd_form_document->slider_tocdepth,-1, 5);
fl_set_counter_step(fd_form_document->slider_secnumdepth, 1, 1);
fl_set_counter_step(fd_form_document->slider_tocdepth, 1, 1);
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;
+ 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) {
- combo_language->addto(tex_babel[n]);
- }
-#else
+
// "default" is not part of the languages array any more.
combo_language->addto("default");
+ combo_language2->addto(_("No change"));
+ combo_language2->addto(_("Reset"));
for(Languages::const_iterator cit = languages.begin();
cit != languages.end(); ++cit) {
- combo_language->addto((*cit).second.lang.c_str());
+ combo_language->addto((*cit).second.lang().c_str());
+ combo_language2->addto((*cit).second.lang().c_str());
}
-#endif
+ combo_language2->select_text("No change");
// not really necessary, but we can do it anyway.
fl_addto_choice(fd_form_document->choice_fontsize, "default|10|11|12");
fl_set_form_minsize(fd_form_document->form_document,
fd_form_document->form_document->w,
fd_form_document->form_document->h);
+ lyxerr[Debug::INIT] << "Initializing form_document...done" << endl;
// the paper form
fd_form_paper = create_form_form_paper();
FL_RETURN_ALWAYS);
fl_set_input_return(fd_form_paper->input_foot_skip,
FL_RETURN_ALWAYS);
+ lyxerr[Debug::INIT] << "Initializing form_paper...done" << endl;
// the table_options form
fd_form_table_options = create_form_form_table_options();
FL_RETURN_ALWAYS);
fl_set_input_return(fd_form_table_extra->input_special_multialign,
FL_RETURN_ALWAYS);
+ lyxerr[Debug::INIT] << "Initializing form_table_extra...done" << endl;
// the quotes form
fd_form_quotes = create_form_form_quotes();
fl_set_slider_value(fd_form_table->slider_columns, 5);
fl_set_slider_precision(fd_form_table->slider_rows, 0);
fl_set_slider_precision(fd_form_table->slider_columns, 0);
-
- // the print form
- fd_form_print = create_form_form_print();
- fl_set_form_atclose(fd_form_print->form_print, CancelCloseBoxCB, 0);
- fl_set_button(fd_form_print->radio_printer, 1);
- fl_set_button(fd_form_print->radio_file, 0);
- fl_set_button(fd_form_print->radio_order_normal, 1);
- fl_set_button(fd_form_print->radio_order_reverse, 0);
- fl_set_button(fd_form_print->radio_all_pages, 1);
- fl_set_button(fd_form_print->radio_odd_pages, 0);
- fl_set_button(fd_form_print->radio_even_pages, 0);
+ lyxerr[Debug::INIT] << "Initializing form_table...done" << endl;
// the sendto form
fd_form_sendto = create_form_form_sendto();
// the toc form
fd_form_toc = create_form_form_toc();
+ fl_addto_choice(fd_form_toc->toctype,
+ _(" TOC | LOF | LOT | LOA "));
fl_set_form_atclose(fd_form_toc->form_toc, CancelCloseBoxCB, 0);
// the ref form
XEvent ev;
while (!finished) {
+#ifdef KDEGUI
+ kapp->processEvents();
+#endif
if (fl_check_forms() == FL_EVENT) {
lyxerr << "LyX: This shouldn't happen..." << endl;
fl_XNextEvent(&ev);
{
lyxViews->view()->buffer(b);
}
+
+LyXView * LyXGUI::getLyXView() const
+{
+ return lyxViews;
+}