|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
[C] Programmazione con Xforms
Salve a tutti, qualcuno di voi sa programmare con queste librerie grafiche di linux?
Io ho un problema: ho creato un form all'interno del quale ci sono dei menu, dei bottoni, delle box e un oggetto freeobject(associato a un file di callback) dentro al quale ho disegnato una scacchiera...ora, sto implementando il gioco di otello e mi viene chiesto che ogni volta che fa una mossa un giocatore devo visualizzare sulla barra superiore una cosa tipo "Turno: O" con a fianco al turno la pedina del colore del giocatore a cui tocca..Ora il problema è questo: la barra con all'interno il turno e il cerchiolino del colore del giocatore è in realtà un box, che inizializzo al principio. Gli eventi che chiamano la callback sn però le "clickate" sulla scacchiera, ossia il freeobject. Ora, come faccio a modificare il colore di quel tondino che sta per cacchi suoi in un altro oggetto? Ovvio che se facessi in modo che tutto avvenisse all'interno dello stesso freeobject le cose sarebbero molto + tranzolle, ma non penso che debba fare così. codice del file di disegno del form: Codice:
/* Form definition file generated with fdesign. */
#include "forms.h"
#include <stdlib.h>
#include "otello.h"
#include "mylibrary.h"
static FL_PUP_ENTRY fdmenu_m_juego_0[] =
{
/* itemtext callback shortcut mode */
{ "Nuevo", 0, "u", FL_PUP_NONE},
{ "Carga", 0, "a", FL_PUP_NONE},
{ "Salva", 0, "v", FL_PUP_NONE},
{ "Esci", 0, "i", FL_PUP_NONE},
{0}
};
FD_Otello *create_form_Otello(void)
{
FL_OBJECT *obj;
fdui = (FD_Otello *) fl_calloc(1, sizeof(*fdui));
turno='b';
c=FL_WHITE;
fdui->Otello = fl_bgn_form(FL_NO_BOX, 330, 420);
obj = fl_add_box(FL_UP_BOX,0,0,330,420,"");
fdui->m_juego = obj = fl_add_menu(FL_PULLDOWN_MENU,10,10,50,20,"Juego");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fl_set_menu_entries(obj, fdmenu_m_juego_0);
fdui->editm = obj = fl_add_menu(FL_PULLDOWN_MENU,70,10,50,20,"Editar");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->opm = obj = fl_add_menu(FL_PULLDOWN_MENU,130,10,80,20,"Opciones");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->helpm = obj = fl_add_menu(FL_PULLDOWN_MENU,260,10,60,20,"Ayuda");
fl_set_object_boxtype(obj,FL_FRAME_BOX);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->boxcont = obj = fl_add_box(FL_FRAME_BOX,10,30,310,50,"Turno:");
fl_set_object_lsize(obj,FL_LARGE_SIZE);
fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->turn = obj = fl_add_box(FL_FLAT_BOX,90,40,40,30,"@#circle");
fl_set_object_lcolor(obj,FL_WHITE);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->freeobj = obj = fl_add_frame(FL_DOWN_FRAME,13,80,304,304,"");
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fdui->tablerofo = obj = fl_add_free(FL_NORMAL_FREE,13,80,304,304,"",
freeobject_handler);
fl_set_object_gravity(obj, FL_NorthWest, FL_SouthEast);
fl_end_form();
fdui->Otello->fdui = fdui;
return fdui;
}
/*---------------------------------------*/
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
uppz
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
risolto anche questo.. byez
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:46.



















