]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_gui.C
more changes, read the Changelog
[lyx.git] / src / lyx_gui.C
index 7d491397a94de77d066da50aca261ccb8f32495b..e80bc7a0a16c7c9c89cafda8a8a26f1d5700cd34 100644 (file)
 #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"
@@ -58,7 +62,6 @@ 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;
@@ -78,20 +81,7 @@ FL_CMD_OPT cmdopt[] =
        {"-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;
@@ -99,20 +89,6 @@ static int height;
 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[] =
@@ -120,20 +96,7 @@ 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}
 };
 
 
@@ -176,8 +139,6 @@ LyXGUI::LyXGUI(LyX * owner, int * argc, char * argv[], bool 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());
@@ -247,14 +208,28 @@ void LyXGUI::init()
                               + "-*-*-*-?-*-*-*-*-"  
                               + 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 
@@ -267,10 +242,6 @@ void LyXGUI::init()
         // 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,
@@ -372,6 +343,7 @@ void LyXGUI::create_forms()
                            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();
@@ -396,12 +368,14 @@ void LyXGUI::create_forms()
        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();
@@ -425,11 +399,12 @@ void LyXGUI::create_forms()
 
        // "default" is not part of the languages array any more.
        combo_language->addto("default");
-       combo_language2->addto("No change");
+       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_language2->addto((*cit).second.lang.c_str());
+               combo_language->addto((*cit).second.lang().c_str());
+               combo_language2->addto((*cit).second.lang().c_str());
        }
        combo_language2->select_text("No change");
 
@@ -458,6 +433,7 @@ void LyXGUI::create_forms()
        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();
@@ -489,6 +465,7 @@ void LyXGUI::create_forms()
                            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();
@@ -505,6 +482,7 @@ void LyXGUI::create_forms()
                            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();
@@ -529,17 +507,7 @@ void LyXGUI::create_forms()
        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();
@@ -620,6 +588,9 @@ void LyXGUI::runTime()
        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);