### 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.
###
### Mon Feb 23 1998 Japanized by Mashio Motoyama <moto@ba.mbn.or.jp>
###

proc virtual {} {
  # 概観と操作性 / 仮想デスクトップ
  Desc " 仮想デスクトップの設定\n\n" \
      "このページでは仮想デスクトップの設定を行います。FVWM が直接計算する仮想デスクトップの数は設定できません。分割された各デスクトップのページ数を設定します。"
  ShortDesc "仮想デスクトップ"

  Header virtH -text "仮想デスクトップ" -frame:relief flat

  Help virtH \
      "このページでは仮想デスクトップの制御を行います。"

  Line deskL
  Header deskH -text "デスクトップ" -frame:relief flat

  Help deskH \
      "デスクトップの設定を行います。"
  
  #######################################################################
  # DeskTopSize
  #
  CheckBox desktopSize\
	  -text "仮想デスクトップサイズ:"
  Int desktopSizeX\
	  -textafter "X"
  Int desktopSizeY\
	  -textafter "倍"
  Frame desktopSizeF -entries { desktopSize desktopSizeX desktopSizeY }

  Help desktopSize \
	  "ここでは全ての仮想デスクトップにおける物理スクリーン(ページ)の数を指定します。デスクトップはページの格子から成り、そのページ数を <水平> X <垂直> で指定します。デスクトップの数は FVWM が直接計算するため設定することはできません。"
  
  Help desktopSizeX \
	  "水平方向のページ数を入力します。"
  Help desktopSizeY \
	  "垂直方向のページ数を入力します。"
  Change {
    if { $changeElm == "desktopSize" } {
      if { $desktopSize == 1 } { Enable desktopSizeX desktopSizeY } else {
	Disable desktopSizeX desktopSizeY }
    }
  }

  PageEnd {
    if { $desktopSize == 1 } {
      if { $desktopSizeX == "" || $desktopSizeY == "" } {
	error "無効なデスクトップのサイズです。"
      }
    }
  }

  Save {
    if { $desktopSize == 1 } {
      print "DeskTopSize\t${desktopSizeX}x$desktopSizeY"
    }
  }
  #
  #######################################################################
  
  #######################################################################
  # EdgeResistance
  #
  Line edgeResL
  Header edgeResH -text "ページ切替" -frame:relief flat
  CheckBox edgeRes\
	  -text "マウスによる仮想デスクトップ切替を制御する"\
	  -justify left
  Int edgeRes1\
	  -text "     ビューポートを動かす前\n     にエッジに留まる時間:"\
	  -textafter "ミリ秒"\
	  -label:justify left
  Int edgeRes2\
	  -text "     スクリーンを切替える前に\n     フリップするピクセル数:"\
	  -textafter "ピクセル"\
	  -label:justify left

  Help edgeResH \
      "マウスによるページの切替方法を設定します。"
  set edgeResHelp1 [concat \
	  "マウスによるページ・フリッピング(パタパタするヤツ)に問題を抱えているのなら、このオプションによってそれを制御できます。その抵抗率は以下の値によって与えられます。"]
  set edgeResHelp2 \
      "1) フリッピングの遅延時間(ミリ秒単位)"
  set edgeResHelp3 [concat \
      "2) スクリーンから離れる前のピクセル数"]
  set edgeResHelp "$edgeResHelp1\n\n$edgeResHelp2\n\n$edgeResHelp3"
  Help edgeRes  $edgeResHelp
  Help edgeRes1 $edgeResHelp
  Help edgeRes2 $edgeResHelp

  Change {
    if { $changeElm == "edgeRes" } {
      if { $edgeRes == 1 } { Enable edgeRes1 edgeRes2 } else {
	Disable edgeRes1 edgeRes2 }
    }
  }

  PageEnd {
    if { $edgeRes == 1 } {
      if { $edgeRes1 == "" || $edgeRes2 == "" } {
	error "無効なエッジの抵抗率が与えられています。"
      }
    }
  }

  Save {if {$edgeRes == 1} {print "EdgeResistance\t$edgeRes1 $edgeRes2"}}
  #
  #######################################################################

  #######################################################################
  # EdgeScroll
  #
  CheckBox edgeScroll\
	  -text "フリップのスクリーンに対する割合"\
	  -justify left
  Int xScroll -text "     X 方向はスクリーンの" -textafter "%"
  Int yScroll -text "     Y 方向はスクリーンの" -textafter "%"

  Help edgeScroll \
	  "マウスがスクリーン・エッジを越えた場合にスクロールする物理スクリーンのパーセンテージを指定できます。これが 0 であればマウスによるフリップ(パタパタ動くヤツ)は起こりません。100 ならばページ全体をフリップします。"
  Help xScroll \
	  "X (水平)方向のスクロール量を設定します。"
  Help yScroll \
	  "Y (垂直)方向のスクロール量を設定します。"

  Change {
    if { $changeElm == "edgeScroll" } {
      if { $edgeScroll == 1 } { Enable xScroll yScroll } else {
	Disable xScroll yScroll }
    }
  }

  PageEnd {
    if { $edgeScroll == 1 } {
      if { $xScroll == "" || $yScroll == "" } {
	error "無効なエッジスクロール量です。"
      }
    }
  }

  Save {if {$edgeScroll == 1} {print "EdgeScroll\t$xScroll $yScroll"}}
  #
  #######################################################################

}
