### Copyright (C) 1995, 1996, 1997 Jeppe Buk (buk@imada.ou.dk)
### This program is free software; you can redistribute it and/or modify
### it under the terms of the GNU General Public License as published by
### the Free Software Foundation; either version 2 of the License, or
### (at your option) any later version.
###
### This program is distributed in the hope that it will be useful,
### but WITHOUT ANY WARRANTY; without even the implied warranty of
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
### GNU General Public License for more details.
###
### You should have received a copy of the GNU General Public License
### along with this program; if not, write to the Free Software
### Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
###
### Mar. 11 1998 Japanize by Mashio Motoyama <moto@ba.mbn.or.jp>
###
proc FvwmPager {} {
  # モジュール / FvwmPager
  Desc "FvwmPager モジュールの設定"
  ShortDesc "FvwmPager"

  Header h -text "FvwmPager" -frame:relief flat \
      -help "このページでは FvwmPager モジュールの設定を行います。このモジュールは仮想デスクトップの操作に使われます。"
  Line l
  CheckBox spawn\
	  -text "起動時から利用" \
	  -help "これを選択すると、このモジュールは起動時、つまり"\
	  "'InitFunction' と 'RestartFunction' からその動作を開始します。"
  Int pager1\
	  -text "先頭デスクトップ: " \
	  -help "ページャに表示する最初のデスクトップを入力します。デスクトップは 0 及び up から番号付けられています。"
  Int pager2 -text "最終デスクトップ: " \
	  -help "ページャに表示する最後のデスクトップを入力します。デスクトップは 0 及び up から番号付けられています。"
  Frame pagerF -entries pager1 pager2
  Change {
    if {$changeElm == "spawn"} {
      if {$spawn == 1} {Enable pager1 pager2} else {Disable pager1 pager2}
    }
  }
  Line delim

  Int nor\
	  -text "表示行数: " \
	  -help "ページャに表示する仮想デスクトップの横の数を入力します。"
  Change {if {$changeElm == "nor" && $nor == "-"} {set nor ""}}
  Save {if {$nor != ""} {print "*FvwmPagerRows\t$nor"}}

  Int noc -text "表示列数: " \
	  -help "ページャに表示する仮想デスクトップの縦の数を入力します。"
  Frame norcF -entries nor noc
  Change {if {$changeElm == "noc" && $noc == "-"} {set noc ""}}
  Save {if {$noc != ""} {print "*FvwmPagerColumns\t$noc"}}

  CheckBox redB\
	  -text "ページャの縮小率: " \
	  -help "ページャの縮小率を入力します。ここに入力する値が分母になります(1/入力値)。"
  Int red -help "縮小率を入力します(1/入力値)。"
  Frame redF -entries redB red
  Change {if {$changeElm == "red" && $red == "-"} {set red ""}}
  Change {
    if {$changeElm == "redB"} {
      if {$redB == 1} {
	set pgeoB 0
	Disable pgeoW pgeoH pgeoX pgeoY
	Enable red
      } else {
	Disable red
      }
    }
  }
  PageEnd {if {$redB == 1 && $red == ""} {
    error "FvwmPager に無効な縮小率が設定されています。"
  }}
  Save {if {$redB == 1} {print "*FvwmPagerDeskTopScale\t$red"}}

  CheckBox pgeoB\
	  -text "ページャの表示位置: " \
	  -help "縮小率を設定していなければ、ページャの大きさと表示する位置を"\
	  "X11 の表記法方で指定可能です。"
  Int pgeoW\
	  -text "幅"\
	  -help "幅をピクセル単位で指定します。"
  Int pgeoH\
	  -text "高さ"\
	  -help "高さをピクセル単位で指定します。"
  Int pgeoX\
	  -text "X 座標"\
	  -help "X 座標を入力します。左端が 0 です。"
  Int pgeoY\
	  -text "Y 座標"\
	  -help "Y 座標を入力します。上端が 0 です。"
  Frame pgeoF -entries pgeoB pgeoW pgeoH pgeoX pgeoY
  Change {if {$changeElm == "pgeoW" && $pgeoW == "-"} {set pgeoW ""}}
  Change {if {$changeElm == "pgeoH" && $pgeoH == "-"} {set pgeoH ""}}
  Change {
    if {$changeElm == "pgeoB"} {
      if {$pgeoB == 1} {
	set redB 0
	Disable red
	Enable pgeoW pgeoH pgeoX pgeoY
      } else {
	Disable pgeoW pgeoH pgeoX pgeoY
      }
    }
  }
  PageEnd {
    if {$pgeoB == 1 && ($pgeoX != $pgeoY &&
			($pgeoX == ""  || $pgeoY == "" ||
			 $pgeoX == "-" || $pgeoY == "-")
			)} {
      error "FvwmPager に完全なジオメトリ情報が与えられていません。"
    }
  }
  Save {
    if {$pgeoB == 1} {
      set geom ""
      if {$pgeoW != "" || $pgeoH != ""} {
	append geom "${pgeoW}x$pgeoH"
      }
      if {$pgeoX != ""} {
	append geom "[signed $pgeoX][signed $pgeoY]"
      }
      print "*FvwmPagerGeometry\t$geom"
    }
  }

  Label igeoL\
	  -text "アイコンの表示位置: "\
	  -help "(訳者補足)\nアイコン状態でのFvwmPager のジオメトリ情報になります。何故チェックボックスになっていないのかは不明です。"
  Int igeoW -text "幅"
  Int igeoH -text "高さ"
  Int igeoX -text "X 座標"
  Int igeoY -text "Y 座標"
  Frame igeoF -entries igeoL igeoW igeoH igeoX igeoY
  Change {if {$changeElm == "igeoW" && $igeoW == "-"} {set igeoW ""}}
  Change {if {$changeElm == "igeoH" && $igeoH == "-"} {set igeoH ""}}
  PageEnd {
    if {$igeoX != $igeoY && ($igeoX == ""  || $igeoY == "" ||
			     $igeoX == "-" || $igeoY == "-")} {
      error "FvwmPager アイコンに完全なジオメトリ情報が与えられていません。"
    }
  }
  Save {
    if {$igeoW != "" || $igeoH != "" || $igeoX != "" || $igeoY != ""} {
      set geom ""
      if {$igeoW != "" || $igeoH != ""} {
	append geom "${igeoW}x$igeoH"
      }
      if {$igeoX != ""} {
	append geom "[signed $igeoX][signed $igeoY]"
      }
      print "*FvwmPagerIconGeometry\t$geom"
    }
  }

  CheckBox stiB\
	  -text "アイコン状態で起動" \
	  -help "これを選択すると、ページャはアイコン状態で起動します。FVWM2 の標準スタイルであれば、この方法が良いでしょう。"
  Save {if {$stiB == 1} {print "*FvwmPagerStartIconic"}}

  Line fcLn
  CheckBox fcB\
	  -text "背景色 :" \
	  -help "ページャの前景色を指定できます。"
  Command fc \
      -default [list "black" 0] \
      -setvalue {
	$widget configure -bg [lindex $fc 0] -text "      "} \
      -invoke {ColorWidget $colorList [lindex $fc 0] \
		   [lindex $fc 1]} \
      -disable {$widget configure -relief flat } \
      -enable {$widget configure -relief raised } \
      -help "ページャの前景色を設定します。"
  Frame fcF -entries fcB fc
  Change {
    if {$changeElm == "fcB"} {if {$fcB == 1} {Enable fc} else {Disable fc}}
  }
  Save {if {$fcB == 1} {print "*FvwmPagerFore\t[hash2rgb [lindex $fc 0]]"}}

  CheckBox bcB -text "背景色: " \
      -help "ページャの背景色を指定できます。"
  Command bc \
      -default [list "white" 0] \
      -setvalue {
	$widget configure -bg [lindex $bc 0] -text "      "} \
      -invoke {ColorWidget $colorList [lindex $bc 0] \
		   [lindex $bc 1]} \
      -disable {$widget configure -relief flat } \
      -enable {$widget configure -relief raised } \
      -help "ページャの背景色を設定します。ここで設定した色は、非アクティブ状態のページとラベルに使われます。"
  Frame bcF -entries bcB bc
  Change {
    if {$changeElm == "bcB"} {if {$bcB == 1} {Enable bc} else {Disable bc}}
  }
  Save {if {$bcB == 1} {print "*FvwmPagerBack\t[hash2rgb [lindex $bc 0]]"}}

  CheckBox hcB\
	  -text "強調色 :" \
	  -help "ページャの強調色を指定できます。ここで指定した色は、アクティブ状態のページとラベルに使われます。"
  Command hc \
      -default [list "grey" 0] \
      -setvalue {
	$widget configure -bg [lindex $hc 0] -text "      "} \
      -invoke {ColorWidget $colorList [lindex $hc 0] \
		   [lindex $hc 1]} \
      -disable {$widget configure -relief flat } \
      -enable {$widget configure -relief raised } \
      -help "ページャの強調色を選択します。"
  Frame hcF -entries hcB hc
  Change {
    if {$changeElm == "hcB"} {if {$hcB == 1} {Enable hc} else {Disable hc}}
  }
  Save {if {$hcB == 1} {print "*FvwmPagerHilight\t[hash2rgb [lindex $hc 0]]"}}

  CheckBox fnB\
	  -text "デスクトップ・ラベルフォント: " \
	  -help "デスクトップのラベルに使うフォントを選択します。"
  CheckBox fnNB\
	  -text "デスクトップ・ラベル非表示" \
	  -help "デスクトップ・ラベルが表示されなくなります。"
  Frame fnF1 -entries fnB fnNB
  Label fnL -text "    "
  Command fnAscii\
	  -default "a14" \
	  -setvalue {buttonSetText $widget ASCII $fnAscii ascii}\
	  -invoke {FontWidget $fnAscii 0 ascii}\
	  -disable {$widget configure -text "Not set"}\
	  -enable {buttonSetText $widget ASCII $fnAscii ascii}\
	  -help "デスクトップ・ラベルに使われる ASCII フォントを選択します。"
  Command fnKanji\
	  -default "k14" \
	  -setvalue {buttonSetText $widget 漢字 $fnKanji kanji}\
	  -invoke {FontWidget $fnKanji 0 kanji}\
	  -disable {$widget configure -text "未設定"}\
	  -enable {buttonSetText $widget 漢字 $fnKanji kanji}\
	  -help "デスクトップ・ラベルに使われる漢字フォントを選択します。"
  Command fnKana\
	  -default "r14" \
	  -setvalue {buttonSetText $widget "1Byte Kana" $fnKana kana}\
	  -invoke {FontWidget $fnKana 0 kana}\
	  -disable {$widget configure -text "Not set"}\
	  -enable {buttonSetText $widget "1Byte Kana" $fnKana kana}\
	  -help "デスクトップ・ラベルに使われる半角カナフォントを選択します。"
  Frame fnF\
	  -entries {fnL fnAscii fnKanji fnKana}
  Change {
      if {$changeElm == "fnB"} {
	  if {$fnB == 1} {
	      set fnNB 0
	      Enable fnAscii fnKanji fnKana
	  } else {
	      Disable fnAscii fnKanji fnKana
	  }
      }
      if {$changeElm == "fnNB"} {
	  if {$fnNB == 1} {
	      set fnB 0
	      Disable fnAscii fnKanji fnKana
	  }
      }
  }
  Save {
      if {$fnB ==  1} {
	  print "*FvwmPagerFont\t$fnAscii,$fnKanji,$fnKana"
      }
  }
  Save {
      if {$fnNB == 1} {
	  print "*FvwmPagerFont\tnone"
      }
  }

  CheckBox fnSB\
	  -text "ウインドウ・ラベル表示"\
	  -help "ウインドウ・ラベルの表示/非表示、そしてフォントを選択します。"
  Label fnSL -text "    "
  Command fnSAscii\
      -default "a14"\
      -setvalue {buttonSetText $widget ASCII $fnSAscii ascii}\
      -invoke {FontWidget $fnSAscii 0 ascii}\
      -disable {$widget configure -text "Not set"}\
      -enable {buttonSetText $widget ASCII $fnSAscii ascii}\
      -help "ウインドウ・ラベルの ASCII フォントを選択します。"
  Command fnSKanji\
      -default "k14"\
      -setvalue {buttonSetText $widget 漢字 $fnSKanji kanji}\
      -invoke {FontWidget $fnSKanji 0 kanji}\
      -disable {$widget configure -text "未設定"}\
      -enable {buttonSetText $widget 漢字 $fnSKanji Kanji}\
      -help "ウインドウ・ラベルの漢字フォントを選択します。"
  Command fnSKana\
      -default "r14"\
      -setvalue {buttonSetText $widget "1Byte Kana" $fnSKana kana}\
      -invoke {FontWidget $fnSKana 0 kana}\
      -disable {$widget configure -text "Not set"}\
      -enable {buttonSetText $widget "1Byte Kana" $fnSKana kana}\
      -help "ウインドウ・ラベルの半角カナフォントを選択します。"
  Frame fnSF\
	  -entries {fnSL fnSAscii fnSKanji fnSKana}
  Change {
      if {$changeElm == "fnSB"} {
	  if {$fnSB == 1} {
	      Enable fnSAscii fnSKanji fnSKana
	  } else {
	      Disable fnSAscii fnSKanji fnSKana
	  }
      }
  }
  Save {
      if {$fnSB == 1} {
	  print "*FvwmPagerSmallFont\t$fnSAscii,$fnSKanji,$fnSKana"
      }
  }

  ComboBox deskNo\
	  -entries {0 1 2 3 4 5 6 7 8 9 10}\
	  -help "設定変更するデスクトップ番号を選択して下さい。"\
	  -default 0
  CheckBox plabB\
	  -text "名前: " \
	  -help "このラベルを定義する場合に選択し、名前を入力します。"
  Entry plab\
	  -help "このデスクトップの名前を入力します。"
  CheckBox pcolB\
	  -text "色: " \
	  -help "このデスクトップの色を設定する場合に選択し、それを設定します。"
  Command pcol \
      -default [list "white" 0] \
      -setvalue {
	$widget configure -bg [lindex $pcol 0] -text "      "} \
      -invoke {ColorWidget $colorList [lindex $pcol 0] \
		   [lindex $pcol 1]} \
      -disable {$widget configure -relief flat } \
      -enable {$widget configure -relief raised } \
      -help "このデスクトップの色を選択します。"
  ExtEntry plabcolE -entries deskNo plabB plab pcolB pcol \
      -text "各デスクトップの設定" \
      -help "個々のデスクトップの色やフォント、ラベル等を設定します。"
  Change {
    if {$changeElm == "plabB"} {
      if {$plabB == 1} {Enable plab} else {Disable plab}
    }
    if {$changeElm == "pcolB"} {
      if {$pcolB == 1} {Enable pcol} else {Disable pcol}
    }
  }
  Save {
    forevery plabcolE {
      if {$deskNo == ""} {
	tk_dialog .deskWarn Warning "デスクトップ番号が指定されていない設定があります。このエントリは無視されます。" info 0 OK
      } else {
	if {$plabB == 1} {print "*FvwmPagerLabel\t$deskNo $plab"}
        if {$pcolB == 1} {print "*FvwmPagerDeskColor\t$deskNo\
 [hash2rgb [lindex $pcol 0]]"}
      }
    }
  }

  PageEnd {
    if {$spawn == 1 && ($pager1 == "" || $pager2 == "")} {
      error "どのデスクトップを表示させるかを指定する必要があります。"
    }
  }

  Save {
    if {$spawn == 1} {
      print "AddToFunc InitFunction \"I\" Module FvwmPager $pager1 $pager2"
      print "AddToFunc RestartFunction \"I\" Module FvwmPager $pager1 $pager2"
    }
  }
}
