libcontrol(2) y el control menu

0 views
Skip to first unread message

Gabriel Diaz

unread,
Jul 3, 2006, 7:30:51 AM7/3/06
to 9fan...@googlegroups.com
Hola

¿Alguien ha programado con libcontrol por aqui?

Necesito saber como se usa correctamente el control menu. Es decir:

menubar = createrow(cs,"menubar");
menu=createmenu(cs,"menu");
chanprint(cs->ctl,"menu add 'New'");
chanprint(cs->ctl,"menu add 'Exit'");
chanprint(cs->ctl,"menubar add menu");

¿Como hago para que me salga un nombre de menu? He utilizado un boton
para que cuando haga click en el me salga el menú, pero entiendo que
debe haber un mecanismo en el propio menu que lo implemente :-?

Además, el control menu ocupa espacio dentro del control menubar, por
lo que no entiendo porque no recibe eventos. (Los tendria que recibir
el control menu, porque el control row no los maneja segun
control(2)).

Lo que quiero es la típica barra de menu que hay en cualquier programa
que no sea tipo acme :-)

Gabi

PD: a ver si utilizamos esta lista para algo!! :)

Federico Benavento

unread,
Jul 3, 2006, 8:01:35 AM7/3/06
to 9fan...@googlegroups.com
Hola,

On 7/3/06, Gabriel Diaz <gabi...@gmail.com> wrote:
> Hola
>
> ¿Alguien ha programado con libcontrol por aqui?
>
> Necesito saber como se usa correctamente el control menu. Es decir:
>
> menubar = createrow(cs,"menubar");
> menu=createmenu(cs,"menu");
> chanprint(cs->ctl,"menu add 'New'");
> chanprint(cs->ctl,"menu add 'Exit'");
> chanprint(cs->ctl,"menubar add menu");
>
> ¿Como hago para que me salga un nombre de menu? He utilizado un boton
> para que cuando haga click en el me salga el menú, pero entiendo que
> debe haber un mecanismo en el propio menu que lo implemente :-?
>

No, hiciste lo correcto, primero haces un boton el cual activa el menu.

> Además, el control menu ocupa espacio dentro del control menubar, por
> lo que no entiendo porque no recibe eventos. (Los tendria que recibir
> el control menu, porque el control row no los maneja segun
> control(2)).
>

ni idea de donde sacaste q el control de tipo row maneja a sus miembros,
tenes q activate() cada miembro, y si queres conectar el textbutton con un
menubutton deberias usar controlwire() o hacerlo directamente a mano

> Lo que quiero es la típica barra de menu que hay en cualquier programa
> que no sea tipo acme :-)
>

q cagada, yo tenia un ejemplo de esto, pero basicamente es lo q te dije,
la idea es q las "row"s y las "columnas" se encargan solo de agrupar otros
controles, para dibujarlos sea mas facil, ya q te ahorras unos cuantos
calculas y unas llamadas a chanprint con "show"

para q apretando "boton" aparezca el "mune" tendria q ser una cosa asi:
chanprint(cs–>ctl, "boton format %q", "%q: menu window 1");

> Gabi
>
> PD: a ver si utilizamos esta lista para algo!! :)
>

exactamente

suerte
--
Federico G. Benavento

Gabriel Diaz

unread,
Jul 3, 2006, 9:07:03 AM7/3/06
to 9fan...@googlegroups.com
Hola

http://oliva.9grid.es/soft/gdiaz/map/p1.c


>
> No, hiciste lo correcto, primero haces un boton el cual activa el menu.
>

¿Y como asocio el control menu al botón, para que la ventana del menu
aparezca debajo del botón?

> ni idea de donde sacaste q el control de tipo row maneja a sus miembros,
> tenes q activate() cada miembro, y si queres conectar el textbutton con un
> menubutton deberias usar controlwire() o hacerlo directamente a mano

Lo que digo es que row no recibe eventos de teclado/raton nada de que
maneje a sus miebros, sino justo al reves, el control menu debe "auto
gestionarse" o dicho de otro modo el control menu deberia controlar
cuando le hacen click para hacer el chanprint(cs,"menu window 1");

>
> > Lo que quiero es la típica barra de menu que hay en cualquier programa
> > que no sea tipo acme :-)
> >
> q cagada, yo tenia un ejemplo de esto, pero basicamente es lo q te dije,
> la idea es q las "row"s y las "columnas" se encargan solo de agrupar otros
> controles, para dibujarlos sea mas facil, ya q te ahorras unos cuantos
> calculas y unas llamadas a chanprint con "show"
>
> para q apretando "boton" aparezca el "mune" tendria q ser una cosa asi:
> chanprint(cs–>ctl, "boton format %q", "%q: menu window 1");
>

Es basicamente lo que he entendido, lo que no veo es como hacer que el
menu salga debajo del boton que pulso. Supongo que tendre que decirle
al menu que use el mismo Rectangle que el boton, pero ¿como hago eso
si uso un control row, y es este control quien me situa al resto?

slds.

gabi

Federico Benavento

unread,
Jul 3, 2006, 10:43:33 AM7/3/06
to 9fan...@googlegroups.com
Hola,

> ¿Y como asocio el control menu al botón, para que la ventana del menu
> aparezca debajo del botón?
>
>

ya te lo dije en el menu anterior, capaz q no fui lo suficientemente claro
aca va de nuevo:


chanprint(cs–>ctl, "boton format %q", "%q: menu window 1");

y controlwire();

esto significa q cuando "boton" reciba un evento va a mandarle el mensaje
a "menu" con ese formato, no lo probe, pero estoy seguro q es algo asi

>
> > ni idea de donde sacaste q el control de tipo row maneja a sus miembros,
> > tenes q activate() cada miembro, y si queres conectar el textbutton con un
> > menubutton deberias usar controlwire() o hacerlo directamente a mano
>
> Lo que digo es que row no recibe eventos de teclado/raton nada de que
> maneje a sus miebros, sino justo al reves, el control menu debe "auto
> gestionarse" o dicho de otro modo el control menu deberia controlar
> cuando le hacen click para hacer el chanprint(cs,"menu window 1");
>

no, el menu comienza a "autogestionarse" recien cuando recibe el
"menu window 1"


> Es basicamente lo que he entendido, lo que no veo es como hacer que el
> menu salga debajo del boton que pulso. Supongo que tendre que decirle
> al menu que use el mismo Rectangle que el boton, pero ¿como hago eso
> si uso un control row, y es este control quien me situa al resto?
>

ok, aca las cosas se complican, y si tenes razon la unica forma q yo
encontre era decirle especificamente donde tenia q aparecer.

Gabriel Diaz

unread,
Jul 3, 2006, 11:01:05 AM7/3/06
to 9fan...@googlegroups.com
> ok, aca las cosas se complican, y si tenes razon la unica forma q yo
> encontre era decirle especificamente donde tenia q aparecer.
>

esta noche probaré, ya comentaré algo por aqui :)

gabi

Reply all
Reply to author
Forward
0 new messages