www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/+mbcgui/+util/SystemColorsDbl.m

    classdef SystemColorsDbl 
    %xregGui.SystemColorsDbl class static MATLAB system colors definition 
    %    SystemColorsDbl returns MATLAB colors
    %    xregGui.SystemColorsDbl properties:
    %       CTRL_TEXT - Text color
    %       CTRL_BACK - back color
    %       CTRL_BG - background color
    %       CTRL_SHADOW - shadow color
    %       CTRL_DK_SHADOW - dark shadow color
    %       CTRL_HILITE - highlight color
    %       CTRL_LT_HILITE - light highlight color
    %       CTRL_SELECTED_BG - selected background color
    %       CTRL_SELECTED_TEXT - selected text color
    %       TITLE_INACTIVE_BG - inactive background color
    %       TITLE_INACTIVE_TEXT - inactive text color
    %       TITLE_ACTIVE_BG active - background color
    %       TITLE_ACTIVE_TEXT - active text color
    %       WINDOW_BG - window background color
    %       BOUNDARY - boundary shading
    %       COMMONTASKS - color for Common Tasks panes
    
    %  Copyright 2000-2016 The MathWorks, Inc. and Ford Global Technologies, Inc.
    
    properties (Constant)
        %CTRL_TEXT Text color
        CTRL_TEXT = defaultColors('CTRL_TEXT');
        %CTRL_BACK back color
        CTRL_BACK = defaultColors('CTRL_BACK')
        %CTRL_BG background color
        CTRL_BG = defaultColors('CTRL_BG')
        %CTRL_SHADOW shadow color
        CTRL_SHADOW = defaultColors('CTRL_SHADOW')
        %CTRL_DK_SHADOW dark shadow color
        CTRL_DK_SHADOW = defaultColors('CTRL_DK_SHADOW')
        %CTRL_HILITE highlight color
        CTRL_HILITE = defaultColors('CTRL_HILITE')
        %CTRL_LT_HILITE light highlight color
        CTRL_LT_HILITE = defaultColors('CTRL_LT_HILITE')
        %CTRL_SELECTED_BG selected background color
        CTRL_SELECTED_BG = defaultColors('CTRL_SELECTED_BG')
        %CTRL_SELECTED_TEXT selected text color
        CTRL_SELECTED_TEXT = defaultColors('CTRL_SELECTED_TEXT')
        %TITLE_INACTIVE_BG inactive background color
        TITLE_INACTIVE_BG = defaultColors('TITLE_INACTIVE_BG')
        %TITLE_INACTIVE_TEXT inactive text color
        TITLE_INACTIVE_TEXT = defaultColors('TITLE_INACTIVE_TEXT')
        %TITLE_ACTIVE_BG active background color
        TITLE_ACTIVE_BG = defaultColors('TITLE_ACTIVE_BG')
        %TITLE_ACTIVE_TEXT active text color
        TITLE_ACTIVE_TEXT = defaultColors('TITLE_ACTIVE_TEXT')
        %WINDOW_BG window background color
        WINDOW_BG = defaultColors('WINDOW_BG')
        %BOUNDARY
        BOUNDARY = [1 1 0.7];
        %COMMONTASKS
        COMMONTASKS = [ 0.8706    0.9216    0.9804];
    end
    
end  % classdef

function col = defaultColors(prop)
persistent s
if isempty(s)
    if usejava('swing')
        s = i_getcolors_java;
    else
        s = i_getcolors_ml;
    end
end
if isfield(s, prop)
    col = s.(prop);
else
    % default to black
    col = [0 0 0];
end
end

function s = i_getcolors_ml
% only define the common colors for non-java environments
s = struct('CTRL_TEXT', get(0, 'DefaultUicontrolForegroundColor'), ...
    'CTRL_BACK',  get(0, 'DefaultUicontrolBackgroundColor'), ...
    'WINDOW_BG',  get(0, 'DefaultAxesColor'));
end  % i_getcolors_ml

function s = i_getcolors_java
decs = com.mathworks.mwt.decorations.Decorations;
s = struct('CTRL_TEXT', i_convertfromjava(decs, decs.CONTROL_TEXT), ...
    'CTRL_BACK',  i_convertfromjava(decs, decs.CONTROL), ...
    'CTRL_SHADOW',  i_convertfromjava(decs, decs.CONTROL_SH), ...
    'CTRL_DK_SHADOW', i_convertfromjava(decs, decs.CONTROL_DK_SH), ...
    'CTRL_HILITE', i_convertfromjava(decs, decs.CONTROL_HL), ...
    'CTRL_LT_HILITE', i_convertfromjava(decs, decs.CONTROL_LT_HL), ...
    'CTRL_SELECTED_BG', i_convertfromjava(decs, decs.SELECTION), ...
    'CTRL_SELECTED_TEXT', i_convertfromjava(decs, decs.SELECTED_TEXT), ...
    'TITLE_INACTIVE_BG', i_convertfromjava(decs, decs.INACTIVE_CAPTION_BG), ...
    'TITLE_INACTIVE_TEXT', i_convertfromjava(decs, decs.INACTIVE_CAPTION_TEXT), ...
    'TITLE_ACTIVE_BG', i_convertfromjava(decs, decs.ACTIVE_CAPTION_BG), ...
    'TITLE_ACTIVE_TEXT', i_convertfromjava(decs, decs.ACTIVE_CAPTION_TEXT), ...
    'WINDOW_BG', i_convertfromjava(decs, decs.WINDOW_BG));
end  % i_getcolors_java


function col = i_convertfromjava(decs, ColorIndex)
javacol = decs.getColor(ColorIndex);
% MATLAB Colors in [0,1]
col = ([javacol.getRed javacol.getGreen javacol.getBlue])./255;
end  % i_convertfromjava