1 /*
2 * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
125 return super.computePrefWidth(height, topInset, rightInset, bottomInset, leftInset) + snapSizeX(box.prefWidth(-1));
126 }
127
128 /** {@inheritDoc} */
129 @Override protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
130 return Math.max(super.computePrefHeight(width - box.prefWidth(-1), topInset, rightInset, bottomInset, leftInset),
131 topInset + box.prefHeight(-1) + bottomInset);
132 }
133
134 /** {@inheritDoc} */
135 @Override protected void layoutChildren(final double x, final double y,
136 final double w, final double h) {
137 final CheckBox checkBox = getSkinnable();
138 final double boxWidth = snapSizeX(box.prefWidth(-1));
139 final double boxHeight = snapSizeY(box.prefHeight(-1));
140 final double computeWidth = Math.max(checkBox.prefWidth(-1), checkBox.minWidth(-1));
141 final double labelWidth = Math.min( computeWidth - boxWidth, w - snapSizeX(boxWidth));
142 final double labelHeight = Math.min(checkBox.prefHeight(labelWidth), h);
143 final double maxHeight = Math.max(boxHeight, labelHeight);
144 final double xOffset = Utils.computeXOffset(w, labelWidth + boxWidth, checkBox.getAlignment().getHpos()) + x;
145 final double yOffset = Utils.computeYOffset(h, maxHeight, checkBox.getAlignment().getVpos()) + x;
146
147 layoutLabelInArea(xOffset + boxWidth, yOffset, labelWidth, maxHeight, checkBox.getAlignment());
148 box.resize(boxWidth, boxHeight);
149 positionInArea(box, xOffset, yOffset, boxWidth, maxHeight, 0, checkBox.getAlignment().getHpos(), checkBox.getAlignment().getVpos());
150 }
151 }
|
1 /*
2 * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
125 return super.computePrefWidth(height, topInset, rightInset, bottomInset, leftInset) + snapSizeX(box.prefWidth(-1));
126 }
127
128 /** {@inheritDoc} */
129 @Override protected double computePrefHeight(double width, double topInset, double rightInset, double bottomInset, double leftInset) {
130 return Math.max(super.computePrefHeight(width - box.prefWidth(-1), topInset, rightInset, bottomInset, leftInset),
131 topInset + box.prefHeight(-1) + bottomInset);
132 }
133
134 /** {@inheritDoc} */
135 @Override protected void layoutChildren(final double x, final double y,
136 final double w, final double h) {
137 final CheckBox checkBox = getSkinnable();
138 final double boxWidth = snapSizeX(box.prefWidth(-1));
139 final double boxHeight = snapSizeY(box.prefHeight(-1));
140 final double computeWidth = Math.max(checkBox.prefWidth(-1), checkBox.minWidth(-1));
141 final double labelWidth = Math.min( computeWidth - boxWidth, w - snapSizeX(boxWidth));
142 final double labelHeight = Math.min(checkBox.prefHeight(labelWidth), h);
143 final double maxHeight = Math.max(boxHeight, labelHeight);
144 final double xOffset = Utils.computeXOffset(w, labelWidth + boxWidth, checkBox.getAlignment().getHpos()) + x;
145 final double yOffset = Utils.computeYOffset(h, maxHeight, checkBox.getAlignment().getVpos()) + y;
146
147 layoutLabelInArea(xOffset + boxWidth, yOffset, labelWidth, maxHeight, checkBox.getAlignment());
148 box.resize(boxWidth, boxHeight);
149 positionInArea(box, xOffset, yOffset, boxWidth, maxHeight, 0, checkBox.getAlignment().getHpos(), checkBox.getAlignment().getVpos());
150 }
151 }
|