359 lines
10 KiB
Java
359 lines
10 KiB
Java
/*
|
|
|
|
Copyright 2006 Eric Hakenholz
|
|
|
|
This file is part of C.a.R. software.
|
|
|
|
C.a.R. is a free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, version 3 of the License.
|
|
|
|
C.a.R. is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
package eric.GUI;
|
|
|
|
import eric.GUI.window.*;
|
|
import eric.OS;
|
|
import java.awt.AlphaComposite;
|
|
import java.awt.Color;
|
|
import java.awt.Dimension;
|
|
import java.awt.Font;
|
|
import java.awt.Graphics;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.Image;
|
|
import javax.swing.ImageIcon;
|
|
import rene.gui.Global;
|
|
|
|
/**
|
|
*
|
|
* @author erichake
|
|
*/
|
|
public class themes {
|
|
|
|
public static String GRAY="gray";
|
|
public static String BRUSHED="brushed";
|
|
public static String CURRENT=BRUSHED;
|
|
public static Color TabChangedColor=new Color(28,106,161);
|
|
public static Font TabFont=new Font("Dialog", Font.PLAIN, 11);
|
|
public static Font TabMenusFont=new Font("Dialog", Font.PLAIN, 12);
|
|
public static Font TabSelectedMenusFont=new Font("Dialog", Font.BOLD+Font.ITALIC, 12);
|
|
private static String PalettePath="/eric/GUI/icons/palette/";
|
|
private static String BarPath="/eric/GUI/icons/bar/";
|
|
private static String ThemesPath="/eric/GUI/icons/themes/";
|
|
private static String CurrentTheme="/eric/GUI/icons/themes/gray/";
|
|
private static String CommonTheme="/eric/GUI/icons/themes/common/";
|
|
private static boolean MAClook=true;
|
|
private static int palette_iconwidth=28;
|
|
private static int palette_icon_per_row=6;
|
|
private static int TitleBarHeight=35;
|
|
private static int TitleBarTextHeight=25;
|
|
private static int BoxesMarginW=5;
|
|
private static int BoxesMarginH=4;
|
|
private static int MenuBarHeight=20;
|
|
private static int VertBorderWidth=7;
|
|
private static int VertPanelBorderWidth=5;
|
|
private static int VertSeparatorWidth=5;
|
|
private static int ResizeBoxWidth=19;
|
|
private static int ResizeBoxHeight=22;
|
|
private static int MainTabPanelHeight=32;
|
|
private static int TabBtnHeight=22;
|
|
private static int ControlTabPanelWidth=150;
|
|
private static Dimension CloseBoxDim, GrowBoxDim, ReduceBoxDim,OpenLeftPanelBtnDim,OpenMiddlePanelBtnDim;
|
|
private static int OpenPanelsBtnsMarginW=5;
|
|
private static int OpenPanelsBtnsMarginH=29;
|
|
private static int comments_height, tab_leftborder, tab_rightborder, StatusBarHeight;
|
|
private static int tab_corner_width=8;
|
|
private static boolean showtabs=true;
|
|
private static boolean showstatus=true;
|
|
private static float opacity=0.5f;
|
|
private static int tooliconsize=32;
|
|
|
|
private static int palette_ZoneTitleHeight=17;
|
|
|
|
|
|
|
|
public themes() {
|
|
}
|
|
|
|
public static void init() {
|
|
ReduceBoxDim=new Dimension(getIcon("zreducebutton.png").getIconWidth(), getIcon("zreducebutton.png").getIconHeight());
|
|
GrowBoxDim=new Dimension(getIcon("zgrowbutton.png").getIconWidth(), getIcon("zgrowbutton.png").getIconHeight());
|
|
CloseBoxDim=new Dimension(getIcon("zclosebutton.png").getIconWidth(), getIcon("zclosebutton.png").getIconHeight());
|
|
OpenLeftPanelBtnDim=new Dimension(getIcon("rightpanel_on.png").getIconWidth(), getIcon("rightpanel_on.png").getIconHeight());
|
|
OpenMiddlePanelBtnDim=new Dimension(getIcon("middlepanel_on.png").getIconWidth(), getIcon("middlepanel_on.png").getIconHeight());
|
|
|
|
// tab_topborder=getIcon("tab_top.gif").getIconHeight();
|
|
// tab_leftborder=getIcon("tab_left.gif").getIconWidth();
|
|
// tab_rightborder=getIcon("tab_right.gif").getIconWidth();
|
|
// tab_bottomborder=getIcon("tab_bottom.gif").getIconHeight();
|
|
comments_height=80;
|
|
tab_leftborder=0;
|
|
tab_rightborder=0;
|
|
StatusBarHeight=25;
|
|
setComponentsSize();
|
|
}
|
|
|
|
public static void setComponentsSize() {
|
|
CurrentTheme=ThemesPath+CURRENT+"/";
|
|
if (isApplet()) {
|
|
VertBorderWidth=0;
|
|
VertSeparatorWidth=0;
|
|
TitleBarHeight=0;
|
|
TitleBarTextHeight=0;
|
|
MenuBarHeight=0;
|
|
ResizeBoxWidth=0;
|
|
ResizeBoxHeight=0;
|
|
MAClook=true;
|
|
return;
|
|
}
|
|
if (CURRENT.equals(GRAY)) {
|
|
VertBorderWidth=5;
|
|
VertPanelBorderWidth=5;
|
|
VertSeparatorWidth=3;
|
|
TitleBarHeight=35;
|
|
TitleBarTextHeight=25;
|
|
MenuBarHeight=20;
|
|
ResizeBoxWidth=19;
|
|
ResizeBoxHeight=22;
|
|
MAClook=true;
|
|
} else if (CURRENT.equals(BRUSHED)) {
|
|
VertBorderWidth=7;
|
|
VertSeparatorWidth=5;
|
|
TitleBarHeight=25;
|
|
TitleBarTextHeight=25;
|
|
MenuBarHeight=20;
|
|
ResizeBoxWidth=19;
|
|
ResizeBoxHeight=22;
|
|
MAClook=false;
|
|
}
|
|
}
|
|
|
|
public static boolean isShowTabs(){
|
|
return showtabs;
|
|
}
|
|
|
|
public static void setShowTabs(boolean b){
|
|
showtabs=b;
|
|
}
|
|
|
|
public static boolean isShowStatus(){
|
|
return showstatus;
|
|
}
|
|
|
|
public static void setShowStatus(boolean b){
|
|
showstatus=b;
|
|
}
|
|
|
|
public static void setTheme(String theme) {
|
|
CURRENT=theme;
|
|
}
|
|
|
|
public static String getTheme() {
|
|
return CURRENT;
|
|
}
|
|
|
|
public static String getBarPath() {
|
|
return BarPath;
|
|
}
|
|
|
|
public static String getPalettePath() {
|
|
return PalettePath;
|
|
}
|
|
|
|
public static String getCurrentThemePath() {
|
|
return CurrentTheme;
|
|
}
|
|
|
|
public static String getCommonThemePath() {
|
|
return CommonTheme;
|
|
}
|
|
|
|
public static int getTabCornerWidth(){
|
|
return tab_corner_width;
|
|
}
|
|
|
|
public static int getToolIconSize(){
|
|
return tooliconsize;
|
|
}
|
|
|
|
public static int getTitleBarHeight() {
|
|
return TitleBarHeight;
|
|
}
|
|
|
|
public static int getMenuBarHeight() {
|
|
return MenuBarHeight;
|
|
}
|
|
|
|
|
|
|
|
public static int getResizeBoxHeight() {
|
|
return ResizeBoxHeight;
|
|
}
|
|
|
|
public static int getResizeBoxWidth() {
|
|
return ResizeBoxWidth;
|
|
}
|
|
|
|
public static int getVerticalBorderWidth() {
|
|
return showtabs?VertBorderWidth:0;
|
|
}
|
|
|
|
public static int getVerticalPanelBorderWidth() {
|
|
if (LeftPanel.isPanelVisible()){
|
|
return VertPanelBorderWidth;
|
|
};
|
|
return 0;
|
|
}
|
|
|
|
public static int getBoxesMarginWidth() {
|
|
return BoxesMarginW;
|
|
}
|
|
|
|
public static int getBoxesMarginHeight() {
|
|
return BoxesMarginH;
|
|
}
|
|
|
|
public static Dimension getGrowBoxDim() {
|
|
return GrowBoxDim;
|
|
}
|
|
|
|
public static Dimension getCloseBoxDim() {
|
|
return CloseBoxDim;
|
|
}
|
|
|
|
public static Dimension getOpenLeftPanelBtnDim() {
|
|
return OpenLeftPanelBtnDim ;
|
|
}
|
|
public static Dimension getOpenMiddlePanelBtnDim() {
|
|
return OpenMiddlePanelBtnDim ;
|
|
}
|
|
public static int getOpenPanelsBtnsMarginW(){
|
|
return OpenPanelsBtnsMarginW;
|
|
}
|
|
public static int getOpenPanelsBtnsMarginH(){
|
|
return OpenPanelsBtnsMarginH;
|
|
}
|
|
|
|
public static Dimension getReduceBoxDim() {
|
|
return ReduceBoxDim;
|
|
}
|
|
|
|
public static int getCommentsHeight() {
|
|
return Global.getParameter("comment", false)?comments_height:0;
|
|
}
|
|
|
|
public static int getTabLeftBorderWidth() {
|
|
return tab_leftborder;
|
|
}
|
|
|
|
public static int getTabRightBorderWidth() {
|
|
return tab_rightborder;
|
|
}
|
|
|
|
public static int getStatusBarHeight() {
|
|
return showstatus?StatusBarHeight:0;
|
|
}
|
|
public static void setStatusBarHeight(int h) {
|
|
StatusBarHeight=h;
|
|
}
|
|
public static int getTabBtnHeight(){
|
|
return TabBtnHeight;
|
|
}
|
|
|
|
public static int getTabControlPanelWidth() {
|
|
return ControlTabPanelWidth;
|
|
}
|
|
|
|
public static int getLeftPanelWidth() {
|
|
return LeftPanel.getPanelWidth();
|
|
}
|
|
|
|
|
|
public static int getRightPanelWidth(){
|
|
int w=(RightPanel.isPanelVisible())?(palette_icon_per_row*palette_iconwidth):0;
|
|
return w;
|
|
}
|
|
|
|
public static int getTotalRightPanelWidth() {
|
|
int w=(RightPanel.isPanelVisible())?(getRightPanelWidth()+RightPanel.getSeparatorWidth()):0;
|
|
return w;
|
|
}
|
|
|
|
public static int getPaletteZoneTitleHeight(){
|
|
return palette_ZoneTitleHeight;
|
|
}
|
|
|
|
public static int getPaletteIconPerRow(){
|
|
return palette_icon_per_row;
|
|
}
|
|
|
|
public static void setPaletteIconWidth(int i){
|
|
palette_iconwidth=i;
|
|
}
|
|
|
|
public static int getPaletteIconWidth(){
|
|
return palette_iconwidth;
|
|
}
|
|
|
|
public static int getMainTabPanelHeight() {
|
|
return showtabs?MainTabPanelHeight:0;
|
|
}
|
|
|
|
public static void setDisable(final Graphics g, final Dimension d) {
|
|
final Graphics2D g2=(Graphics2D) g;
|
|
final AlphaComposite ac=AlphaComposite.getInstance(
|
|
AlphaComposite.SRC_OVER, opacity);
|
|
g2.setComposite(ac);
|
|
g2.setColor(new Color(255, 255, 255));
|
|
g2.fillRect(0, 0, d.width, d.height);
|
|
}
|
|
|
|
public static boolean AllowMacLook() {
|
|
return MAClook;
|
|
}
|
|
|
|
public static boolean MacLF() {
|
|
if (isApplet()) {
|
|
return false;
|
|
}
|
|
return ((OS.isMac())&&themes.AllowMacLook());
|
|
}
|
|
|
|
public static boolean isApplet() {
|
|
return (pipe_tools.isApplet());
|
|
}
|
|
|
|
public static ImageIcon getIcon(final String s) {
|
|
ImageIcon myicon;
|
|
try {
|
|
myicon=new ImageIcon(themes.class.getResource(CurrentTheme+s));
|
|
} catch (final Exception e) {
|
|
try {
|
|
myicon=new ImageIcon(themes.class.getResource(CommonTheme+s));
|
|
} catch (final Exception ex) {
|
|
myicon=new ImageIcon(themes.class.getResource(CommonTheme+"null.gif"));
|
|
}
|
|
}
|
|
return myicon;
|
|
}
|
|
|
|
public static Image getImage(final String s) {
|
|
return pipe_tools.getWindow().getImage(s);
|
|
}
|
|
public static Image getPaletteImage(final String s) {
|
|
return pipe_tools.getWindow().getPaletteImage(s);
|
|
}
|
|
|
|
public static ImageIcon resizeExistingIcon(String path_name, int w, int h){
|
|
ImageIcon iicon = new ImageIcon(themes.class.getResource(path_name));
|
|
return new ImageIcon(iicon.getImage().getScaledInstance(w, h, Image.SCALE_SMOOTH));
|
|
}
|
|
}
|