Search
Wednesday, 12th of February 2020, 22:14:56 UTC
22:33:53
thrashdin
got several questions trying to make some simple gui for my thing
22:34:23
thrashdin
explaining simple details that I may or may not have missed in the manual?
22:40:32
jackdaniel
sure, I'm off to bed soon, but until then I can help
22:42:33
thrashdin
soo I have several (quite a lot) text fields in my main fram (inside a table)
22:42:54
thrashdin
and basically i want to be able to make it so after i type something in there and press Enter
22:43:18
thrashdin
they would setf this value (or plike parsed value) to some global variable
22:43:25
thrashdin
this is about callbacks right?
22:44:15
thrashdin
they are all defined like this
22:44:43
thrashdin
``(defun creature-stat-info () (make-pane 'text-field :text-style (make-text-style :sans-serif :roman :normal) :min-width 40 :max-width 60))``
22:44:46
jackdaniel
yes, i.e you could do something like: (with-output-as-gadget (stream) (make-pane :push-button :label 42 :activate-callback (lambda (&rest args) (setf *var* 42)))
22:44:54
thrashdin
```(defun creature-stat-info () (make-pane 'text-field :text-style (make-text-style :sans-serif :roman :normal) :min-width 40 :max-width 60))```
22:45:05
jackdaniel
and as of text-field, let me think
22:45:30
thrashdin
yeah I really dont want to attach buttons to each
22:45:40
thrashdin
because there's gonna be like 30 or something
22:47:48
jackdaniel
for text-field, I think that the best course of action would be to use value-changed-callback
22:47:57
jackdaniel
give me a minute to think about example
22:49:10
thrashdin
I am actually streaming how I do this thing right now)
22:49:16
thrashdin
so if you wanna see it
22:49:22
thrashdin
if that makes it easier for you
22:49:39
jackdaniel
no, as I've said I'm off to bed soon :)
22:52:57
thrashdin
also what do I need to do in order to make like
22:53:08
thrashdin
different text fields setf different variables?
22:53:12
thrashdin
can I smh name them or something
22:54:21
jackdaniel
you may provide different value-changed callbacks I suppose
22:54:47
thrashdin
basically I want different text fields setf different things, each their own
23:01:53
jackdaniel
ah, enter engages the activate callback
23:06:58
thrashdin
well at least it seems this is not in the manual so i dont feel dumb for missing it?)
23:07:12
jackdaniel
manual needs a lot of work
23:07:28
jackdaniel
also gadgets are not very much polished
23:07:35
jackdaniel
so no need to feel dumb indeed :)
23:07:39
jackdaniel
you did good to come here
23:08:31
thrashdin
well I really wanna use your thing and not some bindings like qtools etc, wanted it to be purely CL project
23:09:19
jackdaniel
https://plaster.tymoon.eu/view/1673#1673
23:11:08
jackdaniel
clim specification was written way before I've even starting learning common lisp, I wouldn't call it my thing; but sure, that's what we aim at -- providing usable toolkit which is a CL project (not a binding)
23:11:19
thrashdin
so basically I need to
23:11:27
thrashdin
`:activate-callback (make-setter '*xxx*)`
23:11:36
jackdaniel
yes, that's the gist of it
23:11:44
thrashdin
and this creates a lambda which sets whatever I wanted
23:12:20
jackdaniel
yes. also note, that frame is in fact an instance of class defined by define-application-frame
23:12:30
jackdaniel
so you may have slots in it, with accessors whatsoever
23:12:42
thrashdin
`(redisplay-frame-panes *application-frame* :force-p t)`
23:13:06
jackdaniel
and callbacks are called in a context of frame, so *application-frame* is accessible, so you may avoid global side effects
23:13:54
jackdaniel
redisplay frame panes is to ensure, that the application pane shows updated *xxx* and *yyy* (notice, that display function prints them)
23:15:03
thrashdin
and this `(value (gadget-value gadget))` is what was in the text field in the first place?
23:15:05
jackdaniel
scymtym: I've noticed some problems with text-field gadget when writing that -- will report the ticket tomorrow. 1. it misbehaves in with-output-as-gadget (missing slot), and it always requires value -- it could provide empty adjustable vector by default i.e
23:15:26
jackdaniel
yes, gadget-value is the accessor to the text-field text
23:15:46
thrashdin
I dont have default values in there?
23:16:08
jackdaniel
what default values?
23:16:19
thrashdin
well in my text fields
23:16:40
jackdaniel
you may add initarg :value "whatever"
23:16:54
thrashdin
an empty string will do?
23:17:43
thrashdin
well I m gonna try this realy quick and probably fail but dont worry
23:17:51
thrashdin
I will ned a lot more stuff anyway
23:18:03
thrashdin
so I m gonna reach for you tomorrow anyway)
23:19:04
jackdaniel
I'll fill the ticket now after all, I'll probably forget by tomorrow
23:19:27
jackdaniel
OK, reported as #966
4:24:02
beach
Good morning everyone!
4:24:16
beach
scymtym: Ah, I see. Good you found the problem.
7:22:41
jackdaniel
I will push fix for text-field directly to master, it is just a matter of adding a default-initarg to text-field-pane
7:28:26
jackdaniel
this is a very nice post which examples could be used as a reference when finishing implementation of our compositing -- https://ciechanow.ski/alpha-compositing/
8:28:13
jdz
jackdaniel: the other pages on https://ciechanow.ski/ are amazing as well.
8:58:22
jackdaniel
we render empty rectangles for #\tab
8:58:31
jackdaniel
(as in: no character)
8:58:38
jackdaniel
s/character/glyph/
8:59:51
jackdaniel
is it the renderer responsibility, or rather medium-draw-* to handle adding the gap?
Thursday, 13th of February 2020, 10:14:56 UTC