-- | Modifying FLTK Widget Appearance
module CsoundExpr.Opcodes.Control.FltkAppearance
    (flColor,
     flColor2,
     flHide,
     flLabel,
     flSetAlign,
     flSetBox,
     flSetColor,
     flSetColor2,
     flSetFont,
     flSetPosition,
     flSetSize,
     flSetText,
     flSetTextColor,
     flSetTextSize,
     flSetTextType,
     flSetVal_i,
     flSetVal,
     flShow)
where



import CsoundExpr.Base.Types
import CsoundExpr.Base.MultiOut
import CsoundExpr.Base.SideEffect
import CsoundExpr.Base.UserDefined



-- | * opcode : FLcolor
--  
--  
-- * syntax : 
--  
--  >   FLcolor ired, igreen, iblue [, ired2, igreen2, iblue2]
--  
--  
-- * description : 
--  
--  Sets the primary colors to RGB values given by the user.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLcolor.html>
 
flColor :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
flColor i0init i1red i2green i3blue = outOpcode "FLcolor" args
  where args = [to i1red, to i2green, to i3blue] ++ map to i0init


-- | * opcode : FLcolor2
--  
--  
-- * syntax : 
--  
--  >   FLcolor2 ired, igreen, iblue
--  
--  
-- * description : 
--  
--  FLcolor2 is the same of FLcolor except it affects the secondary
-- (selection) color.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLcolor2.html>
 
flColor2 :: Irate -> Irate -> Irate -> SignalOut
flColor2 i0red i1green i2blue = outOpcode "FLcolor2" args
  where args = [to i0red, to i1green, to i2blue]


-- | * opcode : FLhide
--  
--  
-- * syntax : 
--  
--  >   FLhide ihandle
--  
--  
-- * description : 
--  
--  Hides the target FLTK widget, making it invisible.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLhide.html>
 
flHide :: Irate -> SignalOut
flHide i0handle = outOpcode "FLhide" args
  where args = [to i0handle]


-- | * opcode : FLlabel
--  
--  
-- * syntax : 
--  
--  >   FLlabel isize, ifont, ialign, ired, igreen, iblue
--  
--  
-- * description : 
--  
--  Modifies a set of parameters related to the text label
-- appearence of a widget (i.e. size, font, alignment and color of
-- corresponding text).
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLlabel.html>
 
flLabel ::
          Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
flLabel i0size i1font i2align i3red i4green i5blue
  = outOpcode "FLlabel" args
  where args
          = [to i0size, to i1font, to i2align, to i3red, to i4green,
             to i5blue]


-- | * opcode : FLsetAlign
--  
--  
-- * syntax : 
--  
--  >   FLsetAlign ialign, ihandle
--  
--  
-- * description : 
--  
--  FLsetAlign sets the text alignment of the label of the target
-- widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetAlign.html>
 
flSetAlign :: Irate -> Irate -> SignalOut
flSetAlign i0align i1handle = outOpcode "FLsetAlign" args
  where args = [to i0align, to i1handle]


-- | * opcode : FLsetBox
--  
--  
-- * syntax : 
--  
--  >   FLsetBox itype, ihandle
--  
--  
-- * description : 
--  
--  FLsetBox sets the appearance of a box surrounding the target
-- widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetBox.html>
 
flSetBox :: Irate -> Irate -> SignalOut
flSetBox i0type i1handle = outOpcode "FLsetBox" args
  where args = [to i0type, to i1handle]


-- | * opcode : FLsetColor
--  
--  
-- * syntax : 
--  
--  >   FLsetColor ired, igreen, iblue, ihandle
--  
--  
-- * description : 
--  
--  FLsetColor sets the primary color of the target widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetColor.html>
 
flSetColor :: Irate -> Irate -> Irate -> Irate -> SignalOut
flSetColor i0red i1green i2blue i3handle
  = outOpcode "FLsetColor" args
  where args = [to i0red, to i1green, to i2blue, to i3handle]


-- | * opcode : FLsetColor2
--  
--  
-- * syntax : 
--  
--  >   FLsetColor2 ired, igreen, iblue, ihandle
--  
--  
-- * description : 
--  
--  FLsetColor2 sets the secondary (or selection) color of the
-- target widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetColor2.html>
 
flSetColor2 :: Irate -> Irate -> Irate -> Irate -> SignalOut
flSetColor2 i0red i1green i2blue i3handle
  = outOpcode "FLsetColor2" args
  where args = [to i0red, to i1green, to i2blue, to i3handle]


-- | * opcode : FLsetFont
--  
--  
-- * syntax : 
--  
--  >   FLsetFont ifont, ihandle
--  
--  
-- * description : 
--  
--  FLsetFont sets the font type of the target widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetFont.html>
 
flSetFont :: Irate -> Irate -> SignalOut
flSetFont i0font i1handle = outOpcode "FLsetFont" args
  where args = [to i0font, to i1handle]


-- | * opcode : FLsetPosition
--  
--  
-- * syntax : 
--  
--  >   FLsetPosition ix, iy, ihandle
--  
--  
-- * description : 
--  
--  FLsetPosition sets the position of the target widget according
-- to the ix and iy arguments.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetPosition.html>
 
flSetPosition :: Irate -> Irate -> Irate -> SignalOut
flSetPosition i0x i1y i2handle = outOpcode "FLsetPosition" args
  where args = [to i0x, to i1y, to i2handle]


-- | * opcode : FLsetSize
--  
--  
-- * syntax : 
--  
--  >   FLsetSize iwidth, iheight, ihandle
--  
--  
-- * description : 
--  
--  FLsetSize resizes the target widget (not the size of its text)
-- according to the iwidth and iheight arguments.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetSize.html>
 
flSetSize :: Irate -> Irate -> Irate -> SignalOut
flSetSize i0width i1height i2handle = outOpcode "FLsetSize" args
  where args = [to i0width, to i1height, to i2handle]


-- | * opcode : FLsetText
--  
--  
-- * syntax : 
--  
--  >   FLsetText "itext", ihandle
--  
--  
-- * description : 
--  
--  FLsetText sets the label of the target widget to the
-- double-quoted text string provided with the itext argument.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetText.html>
 
flSetText :: String -> Irate -> SignalOut
flSetText s0itext i1handle = outOpcode "FLsetText" args
  where args = [to s0itext, to i1handle]


-- | * opcode : FLsetTextColor
--  
--  
-- * syntax : 
--  
--  >   FLsetTextColor ired, iblue, igreen, ihandle
--  
--  
-- * description : 
--  
--  FLsetTextColor sets the color of the text label of the target
-- widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetTextColor.html>
 
flSetTextColor :: Irate -> Irate -> Irate -> Irate -> SignalOut
flSetTextColor i0red i1blue i2green i3handle
  = outOpcode "FLsetTextColor" args
  where args = [to i0red, to i1blue, to i2green, to i3handle]


-- | * opcode : FLsetTextSize
--  
--  
-- * syntax : 
--  
--  >   FLsetTextSize isize, ihandle
--  
--  
-- * description : 
--  
--  FLsetTextSize sets the size of the text label of the target
-- widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetTextSize.html>
 
flSetTextSize :: Irate -> Irate -> SignalOut
flSetTextSize i0size i1handle = outOpcode "FLsetTextSize" args
  where args = [to i0size, to i1handle]


-- | * opcode : FLsetTextType
--  
--  
-- * syntax : 
--  
--  >   FLsetTextType itype, ihandle
--  
--  
-- * description : 
--  
--  FLsetTextType sets some attributes related to the fonts of the
-- text label of the target widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetTextType.html>
 
flSetTextType :: Irate -> Irate -> SignalOut
flSetTextType i0type i1handle = outOpcode "FLsetTextType" args
  where args = [to i0type, to i1handle]


-- | * opcode : FLsetVal_i
--  
--  
-- * syntax : 
--  
--  >   FLsetVal_i ivalue, ihandle
--  
--  
-- * description : 
--  
--  FLsetVal_i forces the value of a valuator to a number provided
-- by the user.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetVal_i.html>
 
flSetVal_i :: Irate -> Irate -> SignalOut
flSetVal_i i0value i1handle = outOpcode "FLsetVal_i" args
  where args = [to i0value, to i1handle]


-- | * opcode : FLsetVal
--  
--  
-- * syntax : 
--  
--  >   FLsetVal ktrig, kvalue, ihandle
--  
--  
-- * description : 
--  
--  FLsetVal is almost identical to FLsetVal_i. Except it operates
-- at k-rate and it affects the target valuator only when ktrig is
-- set to a non-zero value.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLsetVal.html>
 
flSetVal :: (K k0, K k1) => k0 -> k1 -> Irate -> SignalOut
flSetVal k0trig k1value i2handle = outOpcode "FLsetVal" args
  where args = [to k0trig, to k1value, to i2handle]


-- | * opcode : FLshow
--  
--  
-- * syntax : 
--  
--  >   FLshow ihandle
--  
--  
-- * description : 
--  
--  FLshow restores the visibility of a previously hidden widget.
--  
--  
-- * url : <http://www.csounds.com/manual/html/FLshow.html>
 
flShow :: Irate -> SignalOut
flShow i0handle = outOpcode "FLshow" args
  where args = [to i0handle]