]> git.lyx.org Git - features.git/commitdiff
J�rgen's float patch + "span columns"
authorJohn Levon <levon@movementarian.org>
Thu, 25 Jul 2002 11:06:25 +0000 (11:06 +0000)
committerJohn Levon <levon@movementarian.org>
Thu, 25 Jul 2002 11:06:25 +0000 (11:06 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4781 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/FloatList.C
src/buffer.C
src/frontends/xforms/ChangeLog
src/frontends/xforms/FormFloat.C
src/frontends/xforms/forms/form_float.fd
src/insets/ChangeLog
src/insets/insetfloat.C

index d56220b92b4abaf5bcc1d900315417df9297c4c4..b82b0eaba8fbd4c1fbf84c95de266fe01ac60869 100644 (file)
@@ -1,3 +1,11 @@
+2002-07-25  Dekel Tsur  <dekelts@tau.ac.il>
+
+       * buffer.C (parseSingleLyXformat2Token): Use default placement
+       when reading old floats.
+
+       * FloatList.C (FloatList): Change the default placement of figure
+       and tables to "tbp".
+
 2002-07-25  John Levon  <moz@compsoc.man.ac.uk>
 
        * MenuBackend.C: using std::max
index 61d0aadff776e9877e5df150e046f9bf38d6ce55..fd724fdb18eb142b31b8b568bb5ec6ddebe228f4 100644 (file)
@@ -30,12 +30,12 @@ FloatList::FloatList()
        // (these will later be read from a layout file)
 
        // table
-       Floating table("table", "htbp", "lot", "", "plain", N_("Table"),
+       Floating table("table", "tbp", "lot", "", "plain", N_("Table"),
                       N_("List of Tables"), true);
        newFloat(table);
 
        // figure
-       Floating figure("figure", "htbp", "lof",
+       Floating figure("figure", "tbp", "lof",
                        "", "plain", N_("Figure"), 
                        N_("List of Figures"), true);
        newFloat(figure);
index 87f38656cf19a046b87c49aae4b82dbb44059f17..5b1d4c3625883a94e3100bc5760317dab4ba768c 100644 (file)
@@ -803,34 +803,29 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
                        old_float << "collapsed true\n";
                } else if (tmptok == "fig") {
                        inset = new InsetFloat(params, "figure");
-                       old_float << "placement htbp\n"
-                                 << "wide false\n"
+                       old_float << "wide false\n"
                                  << "collapsed false\n";
                } else if (tmptok == "tab") {
                        inset = new InsetFloat(params, "table");
-                       old_float << "placement htbp\n"
-                                 << "wide false\n"
+                       old_float << "wide false\n"
                                  << "collapsed false\n";
                } else if (tmptok == "alg") {
                        inset = new InsetFloat(params, "algorithm");
-                       old_float << "placement htbp\n"
-                                 << "wide false\n"
+                       old_float << "wide false\n"
                                  << "collapsed false\n";
                } else if (tmptok == "wide-fig") {
                        inset = new InsetFloat(params, "figure");
                        //InsetFloat * tmp = new InsetFloat("figure");
                        //tmp->wide(true);
                        //inset = tmp;
-                       old_float << "placement htbp\n"
-                                 << "wide true\n"
+                       old_float << "wide true\n"
                                  << "collapsed false\n";
                } else if (tmptok == "wide-tab") {
                        inset = new InsetFloat(params, "table");
                        //InsetFloat * tmp = new InsetFloat("table");
                        //tmp->wide(true);
                        //inset = tmp;
-                       old_float << "placement htbp\n"
-                                 << "wide true\n"
+                       old_float << "wide true\n"
                                  << "collapsed false\n";
                }
 
index 6f0e64e7979a46e4ddd0c15605f0afe2a536cf68..a0f552da238d1f84b575e2c687b6fefa41e3d22b 100644 (file)
@@ -1,3 +1,13 @@
+2002-07-25  John Levon  <levon@movementarian.org>
+
+       * forms/form_float.fd: "Span columns"
+2002-07-25  Juergen Spitzmueller <j.spitzmueller@gmx.de>
+
+       * FormFloat.C:
+       * forms/form_float.fd: Implement default placement checkbox;
+       some minor tweaks
+
 2002-07-25  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
        * Menubar_pimpl.C (create_submenu): add the code for splitting too
@@ -10,8 +20,9 @@
 
 2002-07-24  Juergen Spitzmueller <j.spitzmueller@gmx.de>
 
-       * FormFloat.C: 
-       * forms/form_float.fd: Implement Wide Float toggle
+       * FormFloat.C:
+       * forms/form_float.fd: Implement Wide Float toggle and !-option;
+       disable h and b with wide floats
 
 2002-07-24  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
index 9f6c77191152208e22aed48e22ac43ba792d64fc..5b0701486d0e8560ff016720390ebe3199a9be19 100644 (file)
@@ -4,6 +4,7 @@
  * See the file COPYING.
  *
  * \author Lars Gullik Bjønnes, larsbj@lyx.org
+ * \author Juergen Spitzmueller j.spitzmueller@gmx.de
  */
 
 #include <config.h>
@@ -27,10 +28,6 @@ FormFloat::FormFloat(ControlFloat & c, Dialogs & d)
 {}
 
 
-// FIX: Needs to be implemented. (Lgb)
-// A way to set to float default is missing.
-// A way to set "force[!]" is missing.
-
 void FormFloat::build()
 {
        dialog_.reset(build_float(this));
@@ -41,10 +38,12 @@ void FormFloat::build()
        bc().setCancel(dialog_->button_close);
        bc().setRestore(dialog_->button_restore);
 
+       bc().addReadOnly(dialog_->check_default);
        bc().addReadOnly(dialog_->check_top);
        bc().addReadOnly(dialog_->check_bottom);
        bc().addReadOnly(dialog_->check_page);
        bc().addReadOnly(dialog_->check_here);
+       bc().addReadOnly(dialog_->check_force);
        bc().addReadOnly(dialog_->check_here_definitely);
        bc().addReadOnly(dialog_->check_wide);
 }
@@ -56,6 +55,12 @@ void FormFloat::apply()
        if (fl_get_button(dialog_->check_here_definitely)) {
                placement += "H";
        } else {
+               if (fl_get_button(dialog_->check_force)) {
+                       placement += "!";
+               }
+               if (fl_get_button(dialog_->check_here)) {
+                       placement += "h";
+               }
                if (fl_get_button(dialog_->check_top)) {
                        placement += "t";
                }
@@ -65,9 +70,7 @@ void FormFloat::apply()
                if (fl_get_button(dialog_->check_page)) {
                        placement += "p";
                }
-               if (fl_get_button(dialog_->check_here)) {
-                       placement += "h";
-               }
+
        }
        controller().params().placement = placement;
        controller().params().wide = fl_get_button(dialog_->check_wide);
@@ -76,17 +79,26 @@ void FormFloat::apply()
 
 void FormFloat::update()
 {
+       bool def_placement = false;
        bool top = false;
        bool bottom = false;
        bool page = false;
        bool here = false;
+       bool force = false;
        bool here_definitely = false;
 
        string placement(controller().params().placement);
 
-       if (contains(placement, "H")) {
+       if (placement.empty()) {
+               def_placement = true;
+
+       } else if (contains(placement, "H")) {
                here_definitely = true;
+
        } else {
+               if (contains(placement, "!")) {
+                       force = true;
+               }
                if (contains(placement, "t")) {
                        top = true;
                }
@@ -100,37 +112,75 @@ void FormFloat::update()
                        here = true;
                }
        }
+       fl_set_button(dialog_->check_default, def_placement);
        fl_set_button(dialog_->check_top, top);
        fl_set_button(dialog_->check_bottom, bottom);
        fl_set_button(dialog_->check_page, page);
        fl_set_button(dialog_->check_here, here);
+       fl_set_button(dialog_->check_force, force);
        fl_set_button(dialog_->check_here_definitely, here_definitely);
-       setEnabled(dialog_->check_here_definitely, !controller().params().wide);
+       setEnabled(dialog_->check_here_definitely, !controller().params().wide 
+                       && !def_placement);
+       if (controller().params().wide) {
+                       fl_set_button(dialog_->check_here, false);
+                       fl_set_button(dialog_->check_bottom, false);
+       }
+       setEnabled(dialog_->check_here, !controller().params().wide && !def_placement);
+       setEnabled(dialog_->check_bottom, !controller().params().wide && !def_placement);
        fl_set_button(dialog_->check_wide, controller().params().wide);
+       setEnabled(dialog_->check_top, !def_placement);
+       setEnabled(dialog_->check_page, !def_placement);
+       setEnabled(dialog_->check_force, !def_placement);
 }
 
 
 ButtonPolicy::SMInput FormFloat::input(FL_OBJECT * ob, long)
 {
-       if (ob == dialog_->check_here_definitely) {
+       bool const def_place = fl_get_button(dialog_->check_default);
+       if (ob == dialog_->check_default) {
+               if (def_place) {
+                       fl_set_button(dialog_->check_top, false);
+                       fl_set_button(dialog_->check_bottom,  false);
+                       fl_set_button(dialog_->check_page, false);
+                       fl_set_button(dialog_->check_here, false);
+                       fl_set_button(dialog_->check_force, false);
+                       fl_set_button(dialog_->check_here_definitely, false);
+                       }
+               setEnabled(dialog_->check_top, !def_place);
+               setEnabled(dialog_->check_bottom, !def_place);
+               setEnabled(dialog_->check_page, !def_place);
+               setEnabled(dialog_->check_here, !def_place);
+               setEnabled(dialog_->check_force, !def_place);
+               setEnabled(dialog_->check_here_definitely, !def_place);
+
+       } else if (ob == dialog_->check_here_definitely) {
                if (fl_get_button(dialog_->check_here_definitely)) {
                        fl_set_button(dialog_->check_top,    false);
                        fl_set_button(dialog_->check_bottom, false);
                        fl_set_button(dialog_->check_page,   false);
                        fl_set_button(dialog_->check_here,   false);
+                       fl_set_button(dialog_->check_force,   false);
                }
        } else {
                if (fl_get_button(dialog_->check_here_definitely)) {
                        fl_set_button(dialog_->check_here_definitely, false);
                }
        }
+
        if (ob == dialog_->check_wide) {
                if (fl_get_button(dialog_->check_wide)) {
                        fl_set_button(dialog_->check_here_definitely, false);
                        setEnabled(dialog_->check_here_definitely, false);
-               }
-               else
+                       fl_set_button(dialog_->check_here, false);
+                       setEnabled(dialog_->check_here, false);
+                       fl_set_button(dialog_->check_bottom, false);
+                       setEnabled(dialog_->check_bottom, false);
+               
+               } else {
                        setEnabled(dialog_->check_here_definitely, true);
+                       setEnabled(dialog_->check_here, true);
+                       setEnabled(dialog_->check_bottom, true);
+               }
        }
 
        return ButtonPolicy::SMI_VALID;
index 9b136e1a4007fb06727f8f71f02b5da9edd4e016..e26ef268f1a6ad6071bb43795ec80e0e03cd7125 100644 (file)
@@ -8,14 +8,14 @@ Unit of measure: FL_COORD_PIXEL
 
 =============== FORM ===============
 Name: form_float
-Width: 360
-Height: 240
-Number of Objects: 12
+Width: 370
+Height: 320
+Number of Objects: 14
 
 --------------------
 class: FL_BOX
 type: FLAT_BOX
-box: 0 0 360 240
+box: 0 0 370 320
 boxtype: FL_FLAT_BOX
 colors: FL_COL1 FL_COL1
 alignment: FL_ALIGN_CENTER
@@ -33,7 +33,7 @@ argument:
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 20 30 152 30
+box: 20 75 152 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
@@ -51,7 +51,7 @@ argument: 0
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 20 60 152 30
+box: 20 105 152 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
@@ -69,7 +69,7 @@ argument: 0
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 190 30 152 30
+box: 190 75 152 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
@@ -87,7 +87,7 @@ argument: 0
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 190 60 152 30
+box: 190 105 152 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
@@ -105,7 +105,7 @@ argument: 0
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 20 110 152 30
+box: 20 180 152 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
@@ -123,7 +123,7 @@ argument: 0
 --------------------
 class: FL_BUTTON
 type: NORMAL_BUTTON
-box: 10 200 80 30
+box: 10 280 100 30
 boxtype: FL_UP_BOX
 colors: FL_COL1 FL_COL1
 alignment: FL_ALIGN_CENTER
@@ -141,7 +141,7 @@ argument: 0
 --------------------
 class: FL_BUTTON
 type: RETURN_BUTTON
-box: 120 200 70 30
+box: 130 280 70 30
 boxtype: FL_UP_BOX
 colors: FL_COL1 FL_COL1
 alignment: FL_ALIGN_CENTER
@@ -159,7 +159,7 @@ argument: 0
 --------------------
 class: FL_BUTTON
 type: NORMAL_BUTTON
-box: 200 200 70 30
+box: 210 280 70 30
 boxtype: FL_UP_BOX
 colors: FL_COL1 FL_COL1
 alignment: FL_ALIGN_CENTER
@@ -177,7 +177,7 @@ argument: 0
 --------------------
 class: FL_BUTTON
 type: NORMAL_BUTTON
-box: 280 200 70 30
+box: 290 280 70 30
 boxtype: FL_UP_BOX
 colors: FL_COL1 FL_COL1
 alignment: FL_ALIGN_CENTER
@@ -195,14 +195,14 @@ argument: 0
 --------------------
 class: FL_CHECKBUTTON
 type: PUSH_BUTTON
-box: 20 160 30 30
+box: 20 230 30 30
 boxtype: FL_NO_BOX
 colors: FL_COL1 FL_YELLOW
 alignment: FL_ALIGN_CENTER
 style: FL_NORMAL_STYLE
-size: FL_DEFAULT_SIZE
+size: FL_NORMAL_SIZE
 lcol: FL_BLACK
-label: Wide Float|#W
+label: Span columns|#S
 shortcut: 
 resize: FL_RESIZE_ALL
 gravity: FL_NoGravity FL_NoGravity
@@ -213,7 +213,7 @@ argument: 0
 --------------------
 class: FL_LABELFRAME
 type: ENGRAVED_FRAME
-box: 10 20 340 130
+box: 10 20 350 200
 boxtype: FL_NO_BOX
 colors: FL_BLACK FL_COL1
 alignment: FL_ALIGN_TOP_LEFT
@@ -228,5 +228,41 @@ name:
 callback: 
 argument: 
 
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 20 135 30 30
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Ignore internal placement rules|#g
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: check_force
+callback: C_FormBaseInputCB
+argument: 0
+
+--------------------
+class: FL_CHECKBUTTON
+type: PUSH_BUTTON
+box: 20 30 30 30
+boxtype: FL_NO_BOX
+colors: FL_COL1 FL_YELLOW
+alignment: FL_ALIGN_CENTER
+style: FL_NORMAL_STYLE
+size: FL_NORMAL_SIZE
+lcol: FL_BLACK
+label: Float Defaults|#D
+shortcut: 
+resize: FL_RESIZE_ALL
+gravity: FL_NoGravity FL_NoGravity
+name: check_default
+callback: C_FormBaseInputCB
+argument: 0
+
 ==============================
 create_the_forms
index 21713b8ab1fb18d75d6dcb5a5431b2459423950f..693646dd315cc88d72d5a9533d8a0e971e2137c2 100644 (file)
@@ -1,3 +1,8 @@
+2002-07-25  Dekel Tsur  <dekelts@tau.ac.il>
+
+       * insetfloat.C (read, write): Allow default placement
+       (floatPlacement_ is empty).
+
 2002-07-23  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
        * insetminipage.h (noFontChange): 
index f803886e275d029c3cef0e355e5d7f9d0fa3fde8..837ff845e5890d051ce8e513d3916f236159299e 100644 (file)
@@ -154,10 +154,7 @@ void InsetFloat::write(Buffer const * buf, ostream & os) const
        os << "Float " // getInsetName()
           << floatType_ << '\n';
 
-       if (floatPlacement_.empty()) {
-               os << "placement "
-                  << floatList.getType(floatType_).placement() << "\n";
-       } else {
+       if (!floatPlacement_.empty()) {
                os << "placement " << floatPlacement_ << "\n";
        }
        if (wide_) {
@@ -179,8 +176,6 @@ void InsetFloat::read(Buffer const * buf, LyXLex & lex)
                        lex.next();
                        floatPlacement_ = lex.getString();
                } else {
-                       lyxerr << "InsetFloat::Read: Missing placement!"
-                              << endl;
                        // take countermeasures
                        lex.pushToken(token);
                }