%%
%% This is file `example-mycolorsetup.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% kvoptions.dtx  (with options: `example')
%% 
%% This is a generated file.
%% 
%% Copyright (C) 2004, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3 of this license or (at your option) any later
%% version. The latest version of this license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status "maintained".
%% 
%% This Current Maintainer of this work is Heiko Oberdiek.
%% 
%% This work consists of the main source file kvoptions.dtx
%% and the derived files
%%    kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
%%    example-mycolorsetup.sty.
%% 
%% No we don't need the option 'color'.
%% With color support option 'emphcolor' will dynamically change
%% the color of \emph statements.
    % Package identification
    % -----------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{example-mycolorsetup}[2006/08/22 Managing my colors]

\RequirePackage{ifpdf}
\RequirePackage{kvoptions}

    % Option declarations
    % -------------------

\SetupKeyvalOptions{
  family=MCS,
  prefix=MCS@
}
    % Use a shorter family name and prefix

    % Option print
\DeclareBoolOption{print}
    % is the same as
    % \DeclareBoolOption[false]{print}

    % Option driver
\ifpdf
  \DeclareStringOption[pdftex]{driver}
\else
  \DeclareStringOption[dvips]{driver}
\fi

    % Alternative interface for driver options
\DeclareVoidOption{dvips}{\SetupDriver}
\DeclareVoidOption{dvipdfm}{\SetupDriver}
\DeclareVoidOption{pdftex}{\SetupDriver}
    % In \SetupDriver we take the current option \CurrentOption
    % and pass it to the driver option.
    % The \expandafter commands expand \CurrentOption at the
    % time, when \SetupDriver is executed and \CurrentOption
    % has the correct meaning.
\newcommand*{\SetupDriver}{%
  \expandafter\@SetupDriver\expandafter{\CurrentOption}%
}
\newcommand*{\@SetupDriver}[1]{%
  \setkeys{MCS}{driver={#1}}%
}

    % Option emph
    % An empty value means, we want to have no color for \emph.
    % If the user specifies option emph without value, the red is used.
\DeclareStringOption{emph}[red]
    % is the same as
    % \DeclareStringOption[]{emph}[red]

    % Default option rule
\DeclareDefaultOption{%
  \ifx\CurrentOptionValue\relax
    \PackageWarningNoLine{\@currname}{%
      Unknown option `\CurrentOption'\MessageBreak
      is passed to package `color'%
    }%
    % Pass the option to package color.
    % Again it is better to expand \CurrentOption.
    \expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{color}%
  \else
    % Package color does not take options with values.
    % We provide the standard LaTeX error.
    \@unknownoptionerror
  \fi
}

    % Process options
    % ---------------
\ProcessKeyvalOptions*

    % Implementation depending on option values
    % -----------------------------------------
    % Code for print mode
\ifMCS@print
  \PassOptionsToPackage{monochrome}{color}
    % tells package color to use black and white
\fi

\RequirePackage[\MCS@driver]{color}
    % load package color with the correct driver

    % \emph setup
\ifx\MCS@emph\@empty
    % \@empty is a predefined macro with empty contents.
    % the option value of option emph is empty, thus
    % we do not want a redefinition of \emph.
\else
  \renewcommand*{\emph}[1]{%
    \textcolor{\MCS@emph}{#1}%
  }
\fi
\endinput
%%
%% End of file `example-mycolorsetup.sty'.
