From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001
From: Jari Vetoniemi <jari.vetoniemi@indooratlas.com>
Date: Mon, 16 Mar 2020 18:49:26 +0900
Subject: Fresh start

---
 jni/ruby/ext/tk/sample/demos-en/ixset | 333 ++++++++++++++++++++++++++++++++++
 1 file changed, 333 insertions(+)
 create mode 100644 jni/ruby/ext/tk/sample/demos-en/ixset

(limited to 'jni/ruby/ext/tk/sample/demos-en/ixset')

diff --git a/jni/ruby/ext/tk/sample/demos-en/ixset b/jni/ruby/ext/tk/sample/demos-en/ixset
new file mode 100644
index 0000000..40a77f4
--- /dev/null
+++ b/jni/ruby/ext/tk/sample/demos-en/ixset
@@ -0,0 +1,333 @@
+#!/usr/bin/env ruby
+
+# ixset --
+# A nice interface to "xset" to change X server settings
+#
+
+require 'tk'
+
+class Xsettings
+  #
+  # Button actions
+  #
+  def quit
+    @root.destroy
+  end
+
+  def ok
+    writesettings
+    quit
+  end
+
+  def cancel
+    readsettings
+    dispsettings
+  end
+
+  # apply is just "writesettings"
+
+
+  #
+  # Read current settings
+  #
+  def readsettings
+    xfd = open("|xset q", 'r')
+    xfd.readlines.each{|line|
+      fields = line.chomp.strip.split(/\s+/)
+      case fields[0]
+      when "auto"
+	if fields[1] == 'repeat:'
+	  @kbdrep = fields[2]
+	  @w_kbdrep.set(@kbdrep)
+	  @kbdcli = fields[6]
+	end
+
+      when "bell"
+	@bellvol = fields[2]
+	@bellpit = fields[5]
+	@belldur = fields[8]
+
+      when "acceleration:"
+	@mouseacc = fields[1]
+	@mousethr = fields[3]
+
+      when "prefer"
+	if fields[2] == 'yes'
+	  @screenbla = 'blank'
+	else
+	  @screenbla = 'noblank'
+	end
+	@w_screenbla.set(@screenbla)
+
+      when "timeout:"
+	@screentim = fields[1]
+	@screencyc = fields[3]
+
+      end
+    }
+
+    xfd.close
+  end
+
+  #
+  # Write settings into the X server
+  #
+  def writesettings
+    @bellvol = @w_bellvol.get
+    @bellpit = @w_bellpit.get
+    @belldur = @w_belldur.get
+
+    @kbdrep = @w_kbdrep.get
+    if @kbdrep == 'on'
+      @kbdcli = @w_kbdcli.get
+    else
+      @kbdcli = 'off'
+    end
+
+    @mouseacc = @w_mouseacc.get
+    @mousethr = @w_mousethr.get
+
+    @screentim = @w_screentim.get
+    @screencyc = @w_screencyc.get
+    @screenbla = @w_screenbla.get
+
+    system("xset \
+            b #{@bellvol} #{@bellpit} #{@belldur} \
+            c #{@kbdcli} \
+            r #{@kbdrep} \
+            m #{@mouseacc} #{@mousethr} \
+            s #{@screentim} #{@screencyc} \
+            s #{@screenbla}")
+  end
+
+  #
+  # Sends all settings to the window
+  #
+  def dispsettings
+    @w_bellvol.set(@bellvol)
+    @w_bellpit.set(@bellpit)
+    @w_belldur.set(@belldur)
+
+    @w_kbdonoff.set(@w_kbdrep.get)
+    @w_kbdcli.set(@kbdcli)
+
+    @w_mouseacc.set(@mouseacc)
+    @w_mousethr.set(@mousethr)
+
+    @w_screenblank.set(@w_screenbla.get)
+    @w_screenpat.set(@w_screenbla.get)
+
+    @w_screentim.set(@screentim)
+    @w_screencyc.set(@screencyc)
+  end
+
+  #
+  # Create all windows, and pack them
+  #
+  class LabelEntry
+    def initialize(parent, text, length)
+      @frame = TkFrame.new(parent)
+      TkLabel.new(@frame, 'text'=>text).pack('side'=>'left','expand'=>'y')
+      @entry = TkEntry.new(@frame, 'width'=>length, 'relief'=>'sunken') {
+	pack('side'=>'left','expand'=>'y')
+      }
+    end
+    def pack(keys)
+      @frame.pack(keys)
+    end
+    def get
+      @entry.value
+    end
+    def set(value)
+      @entry.delete(0,'end')
+      @entry.insert(0, value)
+    end
+  end
+
+  def createwindows
+    win = self
+
+    #
+    # Buttons
+    #
+    buttons = TkFrame.new(@root) {|f|
+      [ TkButton.new(f, 'command'=>proc{win.ok}, 'text'=>'Ok'),
+	TkButton.new(f, 'command'=>proc{win.writesettings}, 'text'=>'Apply'),
+	TkButton.new(f, 'command'=>proc{win.cancel}, 'text'=>'Cancel'),
+	TkButton.new(f, 'command'=>proc{win.quit}, 'text'=>'Quit') ].each{|b|
+	b.pack('side'=>'left', 'expand'=>'yes', 'pady'=>5)
+      }
+    }
+
+    #
+    # Bell settings
+    #
+    bell = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2)
+    l = TkLabel.new(bell, 'text'=>'Bell Settings')
+    @w_bellvol = TkScale.new(bell, 'from'=>0, 'to'=>100, 'length'=>200,
+			     'tickinterval'=>20, 'orient'=>'horizontal',
+			     'label'=>"Volume (%)")
+
+    f = TkFrame.new(bell)
+    @w_bellpit = LabelEntry.new(f, "Pitch (Hz)", 6)
+    @w_bellpit.pack('side'=>'left', 'padx'=>5)
+    @w_belldur = LabelEntry.new(f, "Duration (ms)", 6)
+    @w_belldur.pack('side'=>'right', 'padx'=>5)
+
+    l.pack('side'=>'top', 'expand'=>'yes')
+    @w_bellvol.pack('side'=>'top', 'expand'=>'yes')
+    f.pack('side'=>'top', 'expand'=>'yes')
+
+    #
+    # Keyboard settings
+    #
+    kbdonoff = nil
+    kbdcli = nil
+    kbd = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2)
+    l = TkLabel.new(kbd, 'text'=>'Keyboard Repeat Settings')
+    f = TkFrame.new(kbd)
+    @w_kbdonoff = TkCheckButton.new(f, 'text'=>'On', 'relief'=>'flat',
+				    'onvalue'=>'on', 'offvalue'=>'off',
+				    'variable'=>@w_kbdrep ) {
+      def self.set(value)
+	if value == 'on'
+	  self.select
+	else
+	  self.deselect
+	end
+      end
+      pack('side'=>'left', 'expand'=>'yes', 'fill'=>'both')
+    }
+    @w_kbdcli = TkScale.new(f, 'from'=>0, 'to'=>100, 'length'=>200,
+			 'tickinterval'=>20, 'orient'=>'horizontal',
+			 'label'=>'Click Volume (%)')
+    @w_kbdcli.pack('side'=>'left', 'expand'=>'yes')
+    l.pack('side'=>'top', 'expand'=>'yes')
+    f.pack('side'=>'top', 'expand'=>'yes', 'pady'=>2, 'fill'=>'x')
+
+    #
+    # Mouse settings
+    #
+    mouse = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2)
+    l = TkLabel.new(mouse, 'text'=>'Mouse Settings')
+    f = TkFrame.new(mouse)
+    @w_mouseacc = LabelEntry.new(f, 'Acceleration', 3)
+    @w_mouseacc.pack('side'=>'left')
+    @w_mousethr = LabelEntry.new(f, 'Threshold (pixels)', 3)
+    @w_mousethr.pack('side'=>'right')
+    l.pack('side'=>'top')
+    f.pack('side'=>'top', 'expand'=>'yes')
+
+    #
+    # Screen Saver settings
+    #
+    screen = TkFrame.new(@root, 'relief'=>'raised', 'borderwidth'=>2)
+    l = TkLabel.new(screen, 'text'=>'Screen-saver Settings')
+    f = TkFrame.new(screen)
+    ff1 = TkFrame.new(f)
+    [ @w_screenblank = TkRadioButton.new(ff1, 'text'=>'Blank',
+					 'relief'=>'flat',
+					 'variable'=>@w_screenbla,
+					 'value'=>'blank') {
+	def self.set(value)
+	  if value == 'blank'
+	    self.select
+	  else
+	    self.deselect
+	  end
+	end
+      },
+      @w_screenpat = TkRadioButton.new(ff1, 'text'=>'Pattern',
+				       'relief'=>'flat',
+				       'variable'=>@w_screenbla,
+				       'value'=>'noblank') {
+	def self.set(value)
+	  if value != 'blank'
+	    self.select
+	  else
+	    self.deselect
+	  end
+	end
+      }
+    ].each {|w| w.pack('side'=>'top', 'pady'=>2, 'anchor'=>'w') }
+
+    ff2 = TkFrame.new(f)
+    [ @w_screentim = LabelEntry.new(ff2, 'Timeout (s)', 5),
+      @w_screencyc = LabelEntry.new(ff2, 'Cycle (s)', 5) ].each{|w|
+      w.pack('side'=>'top', 'pady'=>2, 'anchor'=>'e')
+    }
+
+    ff1.pack('side'=>'left')
+    ff2.pack('side'=>'left')
+
+    l.pack('side'=>'top')
+    f.pack('side'=>'top', 'expand'=>'yes')
+
+    #
+    # Main window
+    #
+    buttons.pack('side'=>'top', 'fill'=>'both')
+    bell.pack('side'=>'top', 'fill'=>'both', 'ipady'=>5, 'expand'=>'yes')
+    kbd.pack('side'=>'top', 'fill'=>'both', 'ipady'=>5, 'expand'=>'yes')
+    mouse.pack('side'=>'top', 'fill'=>'both', 'ipady'=>5, 'expand'=>'yes')
+    screen.pack('side'=>'top', 'fill'=>'both', 'ipady'=>5, 'expand'=>'yes')
+
+    #
+    # Let the user resize our window
+    #
+    @root.minsize(10,10)
+  end
+
+  def initialize
+    @root = TkRoot.new
+
+    @kbdrep = 'on'
+    @w_kbdrep = TkVariable.new(@kbdrep)
+    def @w_kbdrep.get
+      self.value
+    end
+    def @w_kbdrep.set(val)
+      self.value=val
+    end
+
+    @kbdcli = 0
+
+    @bellvol = 100
+    @bellpit = 440
+    @belldur = 100
+
+    @mouseacc = "3/1"
+    @mousethr = 4
+
+    @screenbla = "blank"
+    @w_screenbla = TkVariable.new(@screenbla)
+    def @w_screenbla.get
+      self.value
+    end
+    def @w_screenbla.set(val)
+      self.value=val
+    end
+
+    @screentim = 600
+    @screencyc = 600
+
+    #
+    # Listen what "xset" tells us...
+    #
+    readsettings
+
+    #
+    # Create all windows
+    #
+    createwindows
+
+    #
+    # Write xset parameters
+    #
+    dispsettings
+  end
+end
+
+Xsettings.new
+
+Tk.mainloop
-- 
cgit v1.2.3-70-g09d2