]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_gui.C
Fix configure bug with gettext
[lyx.git] / src / lyx_gui.C
index e0d5ce68d338d02bd6bdf3423bb55c885ab654c4..24dead7b1be23db213f800cdcaf1117ec2e1b9bc 100644 (file)
@@ -4,7 +4,7 @@
  *           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"
@@ -48,7 +47,6 @@
 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;
@@ -77,9 +75,6 @@ FL_CMD_OPT cmdopt[] =
        {"-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"}, 
@@ -99,9 +94,6 @@ static int width;
 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];
@@ -125,9 +117,6 @@ FL_resource res[] =
        {"height", "heightClass", FL_INT, &height, "510", 0},
        {"xpos", "xposClass", FL_INT, &xpos, "-1", 0},
        {"ypos", "yposClass", FL_INT, &ypos, "-1", 0},
-       {"Reverse", "reverseClass", FL_INT, &reverse_video, "0", 0},
-       {"Mono", "monoClass", FL_INT, &mono_video, "0", 0},
-       {"FastSelection", "selectionClass", FL_INT, &fast_selection, "0", 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},
@@ -202,10 +191,8 @@ 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();
 }
@@ -240,39 +227,23 @@ void LyXGUI::init()
                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;
 
@@ -290,21 +261,21 @@ void LyXGUI::init()
 
        // 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.
@@ -315,12 +286,7 @@ void LyXGUI::init()
 
        // 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);
 }
 
 
@@ -337,43 +303,44 @@ void LyXGUI::create_forms()
        //
 
        // 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, const_cast<char **>(banner));
-#if FL_REVISION > 85
-         fl_set_pixmapbutton_focus_outline(obj, 3);
+               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
-#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,
@@ -398,11 +365,6 @@ void LyXGUI::create_forms()
        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,
@@ -443,25 +405,34 @@ void LyXGUI::create_forms()
        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);
+       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");
+       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");
-       
+       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) {
            fl_addto_choice(fd_form_document->choice_postscript_driver,
@@ -601,23 +572,28 @@ void LyXGUI::create_forms()
        // 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);
+       }
 }