John Levon:
> send me the patch again and I will

Here you are, sir.

Thanks,
Juergen
Index: src/ChangeLog
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/ChangeLog,v
retrieving revision 1.837
diff -u -r1.837 ChangeLog
--- src/ChangeLog	2002/07/25 02:23:13	1.837
+++ src/ChangeLog	2002/07/25 09:56:19
@@ -1,3 +1,11 @@
+2002-07-25  Dekel Tsur  <[EMAIL PROTECTED]>
+
+	* 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  <[EMAIL PROTECTED]>

 	* MenuBackend.C: using std::max
Index: src/FloatList.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/FloatList.C,v
retrieving revision 1.11
diff -u -r1.11 FloatList.C
--- src/FloatList.C	2002/04/04 14:39:55	1.11
+++ src/FloatList.C	2002/07/25 09:56:20
@@ -30,12 +30,12 @@
 	// (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: src/buffer.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/buffer.C,v
retrieving revision 1.355
diff -u -r1.355 buffer.C
--- src/buffer.C	2002/07/22 17:11:40	1.355
+++ src/buffer.C	2002/07/25 09:56:26
@@ -803,34 +803,29 @@
 			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: src/frontends/xforms/ChangeLog
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/ChangeLog,v
retrieving revision 1.491
diff -u -r1.491 ChangeLog
--- src/frontends/xforms/ChangeLog	2002/07/24 22:32:03	1.491
+++ src/frontends/xforms/ChangeLog	2002/07/25 09:56:34
@@ -1,3 +1,9 @@
+2002-07-25  Juergen Spitzmueller <[EMAIL PROTECTED]>
+
+	* FormFloat.C:
+	* forms/form_float.fd: Implement default placement checkbox;
+	some minor tweaks
+
 2002-07-25  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
 
 	* Menubar_pimpl.C (create_submenu): add the code for splitting too
@@ -10,8 +16,9 @@
 
 2002-07-24  Juergen Spitzmueller <[EMAIL PROTECTED]>
 
-	* 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  <[EMAIL PROTECTED]>
 
Index: src/frontends/xforms/FormFloat.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/FormFloat.C,v
retrieving revision 1.11
diff -u -r1.11 FormFloat.C
--- src/frontends/xforms/FormFloat.C	2002/07/24 15:37:17	1.11
+++ src/frontends/xforms/FormFloat.C	2002/07/25 09:56:34
@@ -4,6 +4,7 @@
  * See the file COPYING.
  *
  * \author Lars Gullik Bjønnes, [EMAIL PROTECTED]
+ * \author Juergen Spitzmueller [EMAIL PROTECTED]
  */
 
 #include <config.h>
@@ -27,10 +28,6 @@
 {}
 
 
-// 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 @@
 	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 @@
 	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 @@
 		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::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 (placement.empty()) {
+		def_placement = true;
 
-	if (contains(placement, "H")) {
+	} else if (contains(placement, "H")) {
 		here_definitely = true;
+
 	} else {
+		if (contains(placement, "!")) {
+			force = true;
+		}
 		if (contains(placement, "t")) {
 			top = true;
 		}
@@ -100,37 +112,75 @@
 			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: src/frontends/xforms/forms/form_float.fd
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/forms/form_float.fd,v
retrieving revision 1.5
diff -u -r1.5 form_float.fd
--- src/frontends/xforms/forms/form_float.fd	2002/07/24 15:37:17	1.5
+++ src/frontends/xforms/forms/form_float.fd	2002/07/25 09:56:35
@@ -8,14 +8,14 @@
 
 =============== 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 @@
 --------------------
 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 all columns|#S
 shortcut: 
 resize: FL_RESIZE_ALL
 gravity: FL_NoGravity FL_NoGravity
@@ -213,7 +213,7 @@
 --------------------
 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
@@ -227,6 +227,42 @@
 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: src/insets/ChangeLog
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/insets/ChangeLog,v
retrieving revision 1.474
diff -u -r1.474 ChangeLog
--- src/insets/ChangeLog	2002/07/23 21:03:38	1.474
+++ src/insets/ChangeLog	2002/07/25 09:56:41
@@ -1,3 +1,8 @@
+2002-07-25  Dekel Tsur  <[EMAIL PROTECTED]>
+
+	* insetfloat.C (read, write): Allow default placement
+ 	(floatPlacement_ is empty).
+
 2002-07-23  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
 
 	* insetminipage.h (noFontChange): 
Index: src/insets/insetfloat.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/insets/insetfloat.C,v
retrieving revision 1.48
diff -u -r1.48 insetfloat.C
--- src/insets/insetfloat.C	2002/07/21 21:21:04	1.48
+++ src/insets/insetfloat.C	2002/07/25 09:56:41
@@ -154,10 +154,7 @@
 	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 @@
 			lex.next();
 			floatPlacement_ = lex.getString();
 		} else {
-			lyxerr << "InsetFloat::Read: Missing placement!"
-			       << endl;
 			// take countermeasures
 			lex.pushToken(token);
 		}

Reply via email to