#\DeclareLyXModule[tcolorbox.sty,environ.sty,etoolbox.sty,pgf.sty]{Fancy Colored Boxes}
#\DeclareCategory{Boxes}
#DescriptionBegin
#Adds custom insets that support colored boxes via the tcolorbox package.
#See the tcolorbox documentation for details.
#DescriptionEnd
#Authors: Jürgen Spitzmüller
#         Uwe Stöhr <uwestoehr@lyx.org>

Format 111

InsetLayout Flex:Color_Box
  LyXType               custom
  Decoration            classic
  LabelString           "Color Box"
  LatexType             environment
  LatexName             tcolorbox
  Requires              tcolorbox
  Argument 1
    LabelString         "Color Box Options"
    Tooltip             "Insert the color box options here (see tcolorbox manual)"
    PassThruChars       "\[]{}"
	DocBookTag          IGNORE
  EndArgument
  ResetsFont            true
  DocBookTag            phrase
  DocBookAttr           role='color-box'
End

InsetLayout Flex:Dynamic_Color_Box
  CopyStyle             Flex:Color_Box
  LatexType             command
  LabelString           "Color Box (Dynamic)"
  LatexName             tcbox
  DocBookTag            phrase
  DocBookAttr           role='dynamic-color-box'
End

InsetLayout Flex:Fit_Color_Box
  CopyStyle             Flex:Dynamic_Color_Box
  LabelString           "Color Box (Fit Contents)"
  LatexName             tcboxfit
  DocBookTag            phrase
  DocBookAttr           role='fit-color-box'
End

InsetLayout Flex:Raster_Color_Box
  CopyStyle             Flex:Color_Box
  LabelString           "Raster Color Box"
  LatexName             tcbraster
  DocBookTag            phrase
  DocBookAttr           role='raster-color-box'
End

InsetLayout Flex:Subtitle
  CopyStyle            Flex:Dynamic_Color_Box
  LatexName            tcbsubtitle
  LabelString          "Subtitle"
  Argument 1
    LabelString        "Subtitle Options"
    ToolTip            "Insert the options here"
    PassThruChars      "\[]{}"
  EndArgument
End

Style Color_Box_Separator
  Category         "Color Boxes"
  LatexType        command
  LatexName        tcblower
  ParIndent        MM
  ParSkip          0.4
  Align            Left
  AlignPossible    Block, Left, Right, Center
  Margin           First_Dynamic
  TopSep           0
  BottomSep        0
  ParSep           0
  LabelType        Static
  LabelBottomSep   0
  LabelString      "-----"
  KeepEmpty        1
  LabelFont 
    Series         medium
    Size           normal
    Color          latex
    Series         bold
  EndFont
  Requires         tcolorbox
End

Style Color_Box_Line
  CopyStyle        Color_Box_Separator
  LatexName        tcbline
  LabelFont 
    Color          textlabel1
  EndFont
  Requires         tcolorbox
End

Style Color_Box_Setup
  Category         "Color Boxes"
  LatexName        tcbset
  LatexType        command
  PassThru         1
  Margin           Dynamic
  LabelSep         xx
  ParSkip          0.0
  ItemSep          0.2
  TopSep           0.7
  BottomSep        0.7
  ParSep           0.3
  Align            Block
  AlignPossible    Block
  LabelType        Static
  LabelString      "Color Box Setup"
  Font
    Color          latex
    Family         typewriter
  EndFont
  LabelFont
    Color          textlabel2
    Family         roman
  EndFont
  Requires         tcolorbox
  Spellcheck       0
End

Style New_Color_Box_Type
  CopyStyle	       Color_Box_Setup
  LatexName        newtcolorbox
  LabelString      "New Color Box Type"
  Font
    Family         roman
  EndFont
  LabelFont
    Color          textlabel2
  EndFont
  Argument 1
    LabelString    "New Box Options"
    Tooltip        "Options for the new box type (optional)"
    PassThruChars  "\[]{}"
  EndArgument
  Argument 2
    LabelString    "Name"
    Tooltip        "Name of the new box type"
    Mandatory      1
    AutoInsert     1
  EndArgument
  Argument 3
    LabelString    "Arguments"
    Tooltip        "Number of arguments (remove this inset if none!)"
    Requires       4
    PassThru       1
  EndArgument
  Argument 4
    LabelString    "Default Value"
    Tooltip        "Default value for argument (keep empty!)"
    Requires       3
  EndArgument
  DocBookTag       IGNORE
End

# define 5 different box environments that can be customized by the user

InsetLayout Flex:Custom_Color_Box_1
  CopyStyle        Flex:Color_Box
  LabelString      "Custom Color Box 1"
  LatexName        cBoxA
  Argument 2
    LabelString    "More Color Box Options"
    Tooltip        "Insert more color box options here"
    Mandatory      1
  EndArgument
  DocBookTag       phrase
  DocBookAttr      role='color-box-1'
End

InsetLayout Flex:Custom_Color_Box_2
  CopyStyle        Flex:Custom_Color_Box_1
  LabelString      "Custom Color Box 2"
  LatexName        cBoxB
  DocBookTag       phrase
  DocBookAttr      role='color-box-2'
End

InsetLayout Flex:Custom_Color_Box_3
  CopyStyle        Flex:Custom_Color_Box_1
  LabelString      "Custom Color Box 3"
  LatexName        cBoxC
  DocBookTag       phrase
  DocBookAttr      role='color-box-3'
End

InsetLayout Flex:Custom_Color_Box_4
  CopyStyle        Flex:Custom_Color_Box_1
  LabelString      "Custom Color Box 4"
  LatexName        cBoxD
  DocBookTag       phrase
  DocBookAttr      role='color-box-4'
End

InsetLayout Flex:Custom_Color_Box_5
  CopyStyle        Flex:Custom_Color_Box_1
  LabelString      "Custom Color Box 5"
  LatexName        cBoxE
  DocBookTag       phrase
  DocBookAttr      role='color-box-5'
End
