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";
}
* See the file COPYING.
*
* \author Lars Gullik Bjønnes, larsbj@lyx.org
+ * \author Juergen Spitzmueller j.spitzmueller@gmx.de
*/
#include <config.h>
{}
-// 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));
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);
}
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";
}
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);
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;
}
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;
=============== 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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
--------------------
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
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