X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=Vfg85mYE8eK3//90NIWg/KL3+r5h0wB9YJftjxlJcJE=; b=fzk8BjfUkB1ycjx0c8B3dbJObTxqNecwKSkik/qFGCYh22pcidss/vn0/WKTBnb3+m 4QbM87EhQVC5vfsY92gPWjS4j+5B5aRSlweoSFI7f6t0mzkT0CVczYF/EsFK4VmdVYZ6 TyYf2Z40/SBhqOma4Q4DNgtuFopFNE/MitLAW7gxA35Et4VYKVjZ8ipxY6emi5h/5qZX ggPuO/F6AWIaRGfhGT7eu9RjredemVo0jfve1qKSxW3V14sQDAiL3S+kH0LqCWs81BXD 8Gdn58dtPVcMabGdgy3cXcGlT3NOuq0dCVvKQ6s9dsqfRw2QqWng3YpdE/QogRLUTrW0 g2NQ== Date: Mon, 29 Oct 2012 20:49:46 +0400 From: Vladimir Zhbanov To: geda-user AT delorie DOT com Subject: Re: [geda-user] Can custom dialogs be created with guile? Message-ID: <20121029164946.GA28209@localhost.localdomain> Mail-Followup-To: geda-user AT delorie DOT com References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="PNTmBPCT7hxwcZjr" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --PNTmBPCT7hxwcZjr Content-Type: text/plain; charset=utf-8 Content-Disposition: inline On Sun, Oct 28, 2012 at 12:36:51AM +0200, Svenn Are Bjerkem wrote: > I guess no, but I have to ask. I suspect you're right, there are only predefined dialogs. However... > >From wiki and pcb.scm I find that there are a few types of predefined > dialogs callable from guild already. > I want to place a couple of entry boxes and an OK/Cancel button pair > to send user input to a script which does the gory details. > I could also be happy with one entry box repeatedly popping up called > from inside a guile loop. ... However, there is a chance to use an external tool to make a dialog, e.g. tcl or xdialog. I have prepared a simple example files (see attachments). Put them into any directory, cd into it and launch gschem. In gschem you need to hit ":" and enter the command (load "simple.scm") You will see a new dialog. Try to enter any data into the entries and see what's happening. The scripts are apparently very rough, but they could be a base to derive your work from. The log window will show you feedback in the case of problems with the scripts. -- http://vzhbanov.byethost33.com --PNTmBPCT7hxwcZjr Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="simple.scm" ;; we need popen to work with pipes (use-modules (ice-9 popen)) ;; open pipe (define port (open-input-pipe "./simple.tcl")) ;; read a string from port (define str (read port)) ;; close pipe (close-pipe port) ;; test string (gschem-msg str) --PNTmBPCT7hxwcZjr Content-Type: application/x-tcl Content-Disposition: attachment; filename="simple.tcl" Content-Transfer-Encoding: quoted-printable #!/bin/sh=0A# I like Tcl!!!=0A#The next line executes wish - wherever it is= \=0Aexec wish "$0" "$@"=0Aset ok ok=0Alabel .hello -text "Hello"=0Apack .he= llo=0A=0Alabel .msg -font courierfont -wraplength 4i -justify left -text "A= simple form where you can type in the various entries and use tabs to move= circularly between the entries."=0Apack .msg -side top=0A=0Aframe .f1 -bd = 2=0Alabel .f1.label=0Aentry .f1.entry -relief sunken -width 40 -textvariabl= e myname=0Apack .f1.entry -side right=0Apack .f1.label -side left=0A=0Afram= e .f2 -bd 2=0Alabel .f2.label=0Aentry .f2.entry -relief sunken -width 40 -t= extvariable myvalue=0Apack .f2.entry -side right=0Apack .f2.label -side lef= t=0A=0A.f1.label config -text Name:=0A.f2.label config -text Value:=0Apack = =2Emsg .f1 .f2 -side top -fill x=0Afocus .f1.entry=0A=0Aset quote {"}=0Afra= me .buttons=0Apack .buttons -side bottom -fill x -pady 2m=0Abutton .buttons= =2Eadd -text "Add" -command "puts \$quote\$myname=3D\$myvalue\$quote; exit"= =0Abutton .buttons.dismiss -text Dismiss -command "exit"=0Apack .buttons.ad= d .buttons.dismiss -side left -expand 1=0A --PNTmBPCT7hxwcZjr--