All pastes #36026 Raw Edit

Miscellany

public ruby v1 · immutable
#36026 ·published 2006-01-06 19:31 UTC
rendered paste body
#Übersetzungs- und Trainingstool für Blindensprache(Braille)#Version 0.8, geschrieben von robtop am 5. Jan '06#im moment werden nur kleinbuchstaben und space erkannt.#unter debian benötigte packete: ruby, ruby-gnome2require 'gtk2'include Gtkdef getzeichen(nr)	#zeichen in braille umwandeln	# umgekehrt, da binär		zeichen = {'a' => 0b000001,'b' => 0b000011,'c' => 0b001001,'d' => 0b011001,'e' => 0b010001,'f' => 0b001011,'g' => 0b011011,'h' => 0b010011,'i' => 0b001010,'j' => 0b010110,'k' => 0b000101,'l' => 0b000111,'m' => 0b001101,'n' => 0b011101,'o' => 0b010101,'p' => 0b001111,'q' => 0b011111,'r' => 0b010111,'s' => 0b001110,'t' => 0b011110,'u' => 0b100101,'v' => 0b100111,'w' => 0b111010,'x' => 0b101101,'y' => 0b111101,'z' => 0b110101,' ' => 0b000000,}	return zeichen[nr]endclass Fenster < Windowclass Brailletab  #tabelle mit 6 felder für brailleschirft	def initialize #bei inizialize wird 000000 angewendet				@image = []		@image[0] = []		@image[1] = []		@eb = []		@tab = Table.new(2, 3, true)		@tab.set_size_request(60, 60)		6.times do			|i|			@image[0][i] = Image.new("0.gif")			@image[1][i] = Image.new("1.gif")			@eb[i] = EventBox.new			@eb[i].add(@image[0][i])			if i <= 2				@tab.attach(@eb[i], 0, 1, i, i+1)			else				@tab.attach(@eb[i], 1, 2, i-3, i-2)			end		end		@stat= 0b000000	end		def gettab		return @tab	end	def settab(newstat) #alte bilder werden empfernt, neue hinzugefügt		@newstat = newstat		6.times do			|i|			@eb[i].remove(@image[@stat[i]][i])			@eb[i].add(@image[@newstat[i]][i])		end		@stat = @newstat	end	def show		@tab.show_all	end	def hide		@tab.hide_all	endend	def initialize		q = 0		x=10		super		self.set_border_width(3)		self.set_title("transbraille V0.8")		self.set_size_request(190, 180)		layout = Layout.new				entry = Entry.new		entry.set_size_request(100, 30)		layout.put( entry, 10, 10)				button = Button.new("translate")		button.set_size_request(100, 30)		layout.put(button, 10, 50)				brailletab = []				button.signal_connect( "clicked" ) do												onec = " "	# 1. buffer für entry.text[izeich]			txtlength = entry.text.length			for i in 0...txtlength do												onec[0] = entry.text[i] # 2. füllen				if q < txtlength					brailletab[q] = Brailletab.new					layout.put(brailletab[q].gettab, x, 100)					x=x+50					q = q+1		#zähler, wie viele tabs existieren									end				brailletab[i].settab(getzeichen(onec))				brailletab[i].show											end						if txtlength < q #falls zu schreibende zeichen kleiner ist als tabs					 #werden restliche tabs ausgeblendet				for a in 1..q-txtlength					puts "hide wird ausgelöst, txtlength: " + txtlength.to_s					puts "q: " +q.to_s + "a: " +a.to_s					brailletab[q-a].hide				end			end							end		self.signal_connect( "destroy") do			main_quit		end		self.add(layout)		self.show_all	endendinitFenster.newmain