packages feed

tabloid-0.3: LineSplitterView.hs

module LineSplitterView where

import Graphics.UI.Gtk
import Control.Monad
import Control.Applicative

data ViewState = V 
    {
       mainWidget :: Widget
      , disableRB :: RadioButton
      , submatchModeRB :: RadioButton
      , linesplitModeRB :: RadioButton
    }

new :: Widget -> IO ViewState
new rw = do
  vbox <- vBoxNew False 2
  hbox <- vBoxNew False 2
  
  boxPackStart vbox hbox PackNatural 2
  boxPackEnd vbox rw PackGrow 2

  dis <- radioButtonNewWithLabel "Disabled"
  linesplit <- radioButtonNewWithLabelFromWidget dis "Field Seperation"
  submatch <- radioButtonNewWithLabelFromWidget dis "Use Submatches"

  linesplit `toggleButtonSetActive` False
  submatch `toggleButtonSetActive` False
  dis `toggleButtonSetActive` True

  boxPackStart hbox dis PackNatural 2
  boxPackStart hbox linesplit PackNatural 2
  boxPackStart hbox submatch PackNatural 2

  return $ V (toWidget vbox) dis submatch linesplit