1 /*
2 * Copyright (c) 2011, 2012, 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
291 // needs focus to be painted
292 // for now we don't know exactly what to do...we'll see!
293 if (b.isFocusPainted() && b.hasFocus()) {
294 // paint UI specific focus
295 paintFocus(g, b, viewRect, textRect, iconRect);
296 }
297 }
298
299 // performs icon and text rect calculations
300 final String text = layoutAndGetText(g, b, aquaBorder, i, viewRect, iconRect, textRect);
301
302 // Paint the Icon
303 if (b.getIcon() != null) {
304 paintIcon(g, b, iconRect);
305 }
306
307 if (textRect.width == 0) {
308 textRect.width = 50;
309 }
310
311 if (text != null && !text.equals("")) {
312 final View v = (View)c.getClientProperty(BasicHTML.propertyKey);
313 if (v != null) {
314 v.paint(g, textRect);
315 } else {
316 paintText(g, b, textRect, text);
317 }
318 }
319 }
320
321 protected String layoutAndGetText(final Graphics g, final AbstractButton b, final AquaButtonBorder aquaBorder, final Insets i, Rectangle viewRect, Rectangle iconRect, Rectangle textRect) {
322 // re-initialize the view rect to the selected insets
323 viewRect.x = i.left;
324 viewRect.y = i.top;
325 viewRect.width = b.getWidth() - (i.right + viewRect.x);
326 viewRect.height = b.getHeight() - (i.bottom + viewRect.y);
327
328 // reset the text and icon rects
329 textRect.x = textRect.y = textRect.width = textRect.height = 0;
330 iconRect.x = iconRect.y = iconRect.width = iconRect.height = 0;
331
|
1 /*
2 * Copyright (c) 2011, 2019, 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
291 // needs focus to be painted
292 // for now we don't know exactly what to do...we'll see!
293 if (b.isFocusPainted() && b.hasFocus()) {
294 // paint UI specific focus
295 paintFocus(g, b, viewRect, textRect, iconRect);
296 }
297 }
298
299 // performs icon and text rect calculations
300 final String text = layoutAndGetText(g, b, aquaBorder, i, viewRect, iconRect, textRect);
301
302 // Paint the Icon
303 if (b.getIcon() != null) {
304 paintIcon(g, b, iconRect);
305 }
306
307 if (textRect.width == 0) {
308 textRect.width = 50;
309 }
310
311 if (text != null && !text.isEmpty()) {
312 final View v = (View)c.getClientProperty(BasicHTML.propertyKey);
313 if (v != null) {
314 v.paint(g, textRect);
315 } else {
316 paintText(g, b, textRect, text);
317 }
318 }
319 }
320
321 protected String layoutAndGetText(final Graphics g, final AbstractButton b, final AquaButtonBorder aquaBorder, final Insets i, Rectangle viewRect, Rectangle iconRect, Rectangle textRect) {
322 // re-initialize the view rect to the selected insets
323 viewRect.x = i.left;
324 viewRect.y = i.top;
325 viewRect.width = b.getWidth() - (i.right + viewRect.x);
326 viewRect.height = b.getHeight() - (i.bottom + viewRect.y);
327
328 // reset the text and icon rects
329 textRect.x = textRect.y = textRect.width = textRect.height = 0;
330 iconRect.x = iconRect.y = iconRect.width = iconRect.height = 0;
331
|