You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.7 KiB
121 lines
3.7 KiB
/* |
|
* Copyright 2000-2016 JetBrains s.r.o. |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
package com.intellij.util.ui; |
|
|
|
import javax.swing.plaf.UIResource; |
|
import java.awt.*; |
|
|
|
import static com.intellij.util.ui.JBUI.scale; |
|
|
|
/** |
|
* @author Konstantin Bulenkov |
|
*/ |
|
public class JBInsets extends Insets { |
|
/** |
|
* Creates and initializes a new <code>Insets</code> object with the |
|
* specified top, left, bottom, and right insets. |
|
* |
|
* @param top the inset from the top. |
|
* @param left the inset from the left. |
|
* @param bottom the inset from the bottom. |
|
* @param right the inset from the right. |
|
*/ |
|
public JBInsets(int top, int left, int bottom, int right) { |
|
super(scale(top), scale(left), scale(bottom), scale(right)); |
|
} |
|
|
|
public int width() { |
|
return left + right; |
|
} |
|
|
|
public int height() { |
|
return top + bottom; |
|
} |
|
|
|
public static JBInsets create(Insets insets) { |
|
if (insets instanceof JBInsets) { |
|
JBInsets copy = new JBInsets(0, 0, 0, 0); |
|
copy.top = insets.top; |
|
copy.left = insets.left; |
|
copy.bottom = insets.bottom; |
|
copy.right = insets.right; |
|
return copy; |
|
} |
|
return new JBInsets(insets.top, insets.left, insets.bottom, insets.right); |
|
} |
|
|
|
public JBInsetsUIResource asUIResource() { |
|
return new JBInsetsUIResource(this); |
|
} |
|
|
|
public static class JBInsetsUIResource extends JBInsets implements UIResource { |
|
public JBInsetsUIResource(JBInsets insets) { |
|
super(0, 0, 0, 0); |
|
top = insets.top; |
|
left = insets.left; |
|
bottom = insets.bottom; |
|
right = insets.right; |
|
} |
|
} |
|
|
|
/** |
|
* @param dimension the size to increase |
|
* @param insets the insets to add |
|
*/ |
|
public static void addTo(Dimension dimension, Insets insets) { |
|
if (insets != null) { |
|
dimension.width += insets.left + insets.right; |
|
dimension.height += insets.top + insets.bottom; |
|
} |
|
} |
|
|
|
/** |
|
* @param dimension the size to decrease |
|
* @param insets the insets to remove |
|
*/ |
|
public static void removeFrom(Dimension dimension, Insets insets) { |
|
if (insets != null) { |
|
dimension.width -= insets.left + insets.right; |
|
dimension.height -= insets.top + insets.bottom; |
|
} |
|
} |
|
|
|
/** |
|
* @param rectangle the size to increase and the location to move |
|
* @param insets the insets to add |
|
*/ |
|
public static void addTo(Rectangle rectangle, Insets insets) { |
|
if (insets != null) { |
|
rectangle.x -= insets.left; |
|
rectangle.y -= insets.top; |
|
rectangle.width += insets.left + insets.right; |
|
rectangle.height += insets.top + insets.bottom; |
|
} |
|
} |
|
|
|
/** |
|
* @param rectangle the size to decrease and the location to move |
|
* @param insets the insets to remove |
|
*/ |
|
public static void removeFrom(Rectangle rectangle, Insets insets) { |
|
if (insets != null) { |
|
rectangle.x += insets.left; |
|
rectangle.y += insets.top; |
|
rectangle.width -= insets.left + insets.right; |
|
rectangle.height -= insets.top + insets.bottom; |
|
} |
|
} |
|
}
|
|
|