Re: [gtk-list] Re: layered widgets
- From: Paul Barton-Davis <pbd op net>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: layered widgets
- Date: Thu, 25 Mar 1999 08:02:24 -0500
>I do think Havoc is right about you not wanting overlaping
>widgets. It was a fundimental assumption of gtk+ that
>no 2 widgets occupy the same space. I would avoid the layered
>widget in favor of using the background pixmap. After all
>you really don't need the extra event capture and such that
>Gtk_Pixmap is going to give you. Therefore, just drawing on
>the underlaying pixmap is better.
Actually, I do want them to be *potentially* overlapping. My program
features a little "GUI-builder" language (*), that allows the user to
define the visual construction of various parts of the user
interface. This has nothing to do with themes, BTW; the system is a
modular audio/midi processor based on Csound, and the "GUI-builder"
language lets you specify which of a relatively small set of
predetermined visual elements you want to put on the "panel" for a
given module of your setup, and where they should go on the "panel".
(check out http://www.op.net/~pbd/quasimodo/ for screenshots and more
details)
This language assumes the use of a Fixed object to do the layout,
and yes, sometimes people (right now, just me :) give coordinates that
lead the widgets to overlap.
To date, I have encountered no problems with them when they do, except
that if they overlap 100%, you lose access to the lower widget completely.
--p
(*) An example:
Interface
height = 3;
label@(10,5) = "VCO";
knob@(15,15) = {
label = "Coarse Tune";
parameter = kcoarse;
start_value = -10000;
end_value = 10000;
step_increment = 100;
page_increment = 1000;
};
knob@(50,15) = {
label = Volume;
param = iamplitude;
start = 0;
end = 1;
step = 0.01;
page = 0.1;
};
function@(50,60) = {
param = iwavetable;
label = "WaveForm";
};
socket@(10,70) = {
label = "Freq in";
param = ifrequency;
flags = input;
};
socket@(30,70) = {
label = "Amp Mod";
param = iamplitude;
flags = input;
};
socket@(80,70) = {
label = "Output";
param = asig;
flags = output;
};
EndInterface
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]