Converting function calls to shared memory

I'm a bit new to programming. Read C++ for dummies but still can't figure this out. I want to convert all the Callback functions to use shared memory. The DB_Callback is an example of how it's done. I'm trying to figure out how to do the rest. Thanks for any help.

/*****************************************************************************/
/**************VISUAL_I::DB CALLBACK******************************************/
/*** Called when the Database is changed will use the shared memory *****/
/*** interface to change the selected database *****/
/*****************************************************************************/

void visual_i::DB_Callback(Fl_Widget *own, void* data)
{
visual_i * vis = static_cast<visual_i*> (data);
char command[] = "sceno";
int val = d_bases[vis->db_choice->value()];
if (val != 0)
{
sh_mem::set_int_value(command,val);
}
}

void visual_i::Comm_Callback(Fl_Widget *own, void* data)
{
visual_i * vis = static_cast<visual_i*> (data);
char com1[] = "imggen";
char com2[] = "esig_on";
char com3[] = "visinit";
sh_mem::set_int_value(com2,-1);
sh_mem::set_int_value(com3,1);
if (vis->sermnet->value())
{
sh_mem::set_int_value(com1,2);
}
else
{
sh_mem::set_int_value(com1,4);
}


}
/*****************************************************************************/
/**************VISUAL_I::RESET CALLBACK***************************************/
/*** Called when the Reset Button is pressed, Used to reset to a default *****/
/*** set of visual parameters *****/
/*****************************************************************************/

void visual_i::Reset_Callback(Fl_Widget *own, void* data)
{
time_t rawtime;
tm * ptm;
time ( &rawtime );
ptm = gmtime ( &rawtime );

visual_i * vis = static_cast<visual_i*> (data);
/***TIME OF DAY***/
vis->minute->value(ptm->tm_min);
vis->hour->value(ptm->tm_hour);
vis->day->value(ptm->tm_mday-1);
vis->month->value(ptm->tm_mon);
vis->year->value(ptm->tm_year + 1900);

/***LIGHTS***/
vis->r_light->value(1);
vis->a_light->value(1);
vis->s_light->value(1);
vis->t_light->value(1);
vis->v_light->value(1);
vis->l_slid->value(1);
vis->c_light->value(1);

/***STARS***/
vis->st_slid->value(60);
vis->st_button->value(1);

/***GLOBAL VISIBILITY***/
vis->gv_in->value(GV_Val);

/***PATCHY FOG***/
vis->pf_button->value(0);
vis->pf_freq_in->value(FR_Val);
vis->pf_rvr_in->value(MR_Val);

/***CLOUDS***/
vis->lay_cloud->value(0);
vis->be_in->value(BE_Val);
vis->thick_in->value(TH_Val);
vis->trans_in->value(TR_Val);
vis->cvis_in->value(CV_Val);
vis->scu_cloud->value(0);
vis->cir_cloud->value(1);

/***DATABASE***/
vis->db_choice->value("No_Database_Selected");

ToD_Callback(NULL,vis);
GV_Callback(NULL,vis);
Star_Callback(NULL,vis);
Cloud_Callback(NULL,vis);
Fog_Callback(NULL,vis);
Light_Callback(NULL,vis);
DB_Callback(NULL,vis);
}


void visual_i::ToD_Callback(Fl_Widget *own, void* data)
{
char command[300];
visual_i * vis = static_cast<visual_i*> (data);
int year = (int)(vis->year)->value();
int month = months[(vis->month)->value()];
int day = atoi((vis->day)->value());
int minute = (int)(vis->minute)->value();
int hour = (int)(vis->hour)->value();
if (minute > 59)
{
minute = 0;
(vis->minute)->value(minute);
hour++;
(vis->hour)->value(hour);
}
if (minute < 0)
{
minute = 59;
(vis->minute)->value(minute);
hour--;
(vis->hour)->value(hour);
}

if (hour > 23)
{
hour = 0;
(vis->hour)->value(hour);

}
if (hour < 0)
{
hour = 23;
(vis->hour)->value(hour);

}
hour = hour*100 + minute;
Topic archived. No new replies allowed.