Skip to content
Snippets Groups Projects
Commit 991eaf64 authored by deuce's avatar deuce
Browse files

Set up items on the BBS menu:

Reload Configuration
Force Timed Events
Force Network Callout
parent 2a6b87d9
No related branches found
No related tags found
No related merge requests found
...@@ -381,3 +381,32 @@ void on_statistics_pane1_activate(GtkWidget *wiggy, gpointer data) ...@@ -381,3 +381,32 @@ void on_statistics_pane1_activate(GtkWidget *wiggy, gpointer data)
} }
} }
} }
void create_force_sem(GtkWidget *wiggy, gpointer data)
{
gchar *label;
char fn[MAX_PATH+1];
label=(gchar *)gtk_label_get_text(GTK_LABEL(wiggy));
if(label != NULL) {
sprintf(fn,"%s%s.now",(gchar *)data, label);
touch_sem(cfg.data_dir, fn);
}
}
void on_force_event(GtkWidget *wiggy, gpointer data)
{
/* There's only one child... so this is a bit of a cheat */
gtk_container_foreach(GTK_CONTAINER(wiggy), create_force_sem, "");
}
void on_force_qnet(GtkWidget *wiggy, gpointer data)
{
/* There's only one child... so this is a bit of a cheat */
gtk_container_foreach(GTK_CONTAINER(wiggy), create_force_sem, "qnet/");
}
void on_reload_configuration1(GtkWidget *wiggy, gpointer data)
{
refresh_events();
}
...@@ -64,5 +64,7 @@ void on_file_name_filter_message1_activate(GtkWidget *wiggy, gpointer data); ...@@ -64,5 +64,7 @@ void on_file_name_filter_message1_activate(GtkWidget *wiggy, gpointer data);
void on_phone_number_filter1_activate(GtkWidget *wiggy, gpointer data); void on_phone_number_filter1_activate(GtkWidget *wiggy, gpointer data);
void on_phone_number_filter_message1_activate(GtkWidget *wiggy, gpointer data); void on_phone_number_filter_message1_activate(GtkWidget *wiggy, gpointer data);
void on_twit_list1_activate(GtkWidget *wiggy, gpointer data); void on_twit_list1_activate(GtkWidget *wiggy, gpointer data);
void on_force_event(GtkWidget *wiggy, gpointer data);
void on_force_qnet(GtkWidget *wiggy, gpointer data);
#endif #endif
...@@ -8,42 +8,37 @@ int nodes=0; ...@@ -8,42 +8,37 @@ int nodes=0;
GtkListStore *store = NULL; GtkListStore *store = NULL;
GtkTreeSelection *sel; GtkTreeSelection *sel;
/* Refreshes global variables... ie: Number of users */ void refresh_events(void)
int refresh_data(gpointer data)
{ {
char str[1024]; int i;
char str2[1024];
char str3[1024];
char *p;
GtkWidget *w; GtkWidget *w;
int i,j; GtkWidget *menu;
GtkTreeIter curr; char str[1024];
GtkTreeModel *model;
node_t node;
stats_t sstats;
stats_t nstats;
int shownode;
/* Read .cfg files here */ /* Read .cfg files here */
free_cfg(&cfg);
if(!load_cfg(&cfg, NULL, TRUE, str)) { if(!load_cfg(&cfg, NULL, TRUE, str)) {
fprintf(stderr,"Cannot load configuration data\n"); fprintf(stderr,"Cannot load configuration data\n");
return(-1); return;
} }
/* Update timed events */ /* Update timed events */
#if 0
w=glade_xml_get_widget(xml, "force_timed_event1"); w=glade_xml_get_widget(xml, "force_timed_event1");
if(w==NULL) if(w==NULL)
fprintf(stderr,"Cannot get timed event widget\n"); fprintf(stderr,"Cannot get timed event widget\n");
else { else {
GtkWidget *menu; menu=gtk_menu_item_get_submenu(GTK_MENU_ITEM(w));
gtk_widget_destroy(GTK_WIDGET(menu));
menu=gtk_menu_item_get_submenu(w); menu=gtk_menu_new();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (w), menu);
if(menu!=NULL) { if(menu!=NULL) {
GList *evts; for(i=0; i<cfg.total_events; i++) {
evts = gtk_container_get_children(GTK_CONTAINER(menu)); w = gtk_menu_item_new_with_label(cfg.event[i]->code);
gtk_widget_show (w);
for(i=0; i<cfg.total_event; i++) { gtk_container_add (GTK_CONTAINER (menu), w);
g_signal_connect ((gpointer) w, "activate"
,G_CALLBACK (on_force_event)
,NULL);
} }
} }
else else
...@@ -55,8 +50,40 @@ int refresh_data(gpointer data) ...@@ -55,8 +50,40 @@ int refresh_data(gpointer data)
if(w==NULL) if(w==NULL)
fprintf(stderr,"Cannot get network callout widget\n"); fprintf(stderr,"Cannot get network callout widget\n");
else { else {
menu=gtk_menu_item_get_submenu(GTK_MENU_ITEM(w));
gtk_widget_destroy(GTK_WIDGET(menu));
menu=gtk_menu_new();
gtk_menu_item_set_submenu (GTK_MENU_ITEM (w), menu);
if(menu!=NULL) {
for(i=0; i<cfg.total_qhubs; i++) {
w = gtk_menu_item_new_with_label(cfg.qhub[i]->id);
gtk_widget_show (w);
gtk_container_add (GTK_CONTAINER (menu), w);
g_signal_connect ((gpointer) w, "activate"
,G_CALLBACK (on_force_qnet)
,NULL);
}
}
else
fprintf(stderr,"Cannot get timed event submenu\n");
} }
#endif }
/* Refreshes global variables... ie: Number of users */
int refresh_data(gpointer data)
{
char str[1024];
char str2[1024];
char str3[1024];
char *p;
GtkWidget *w;
int i,j;
GtkTreeIter curr;
GtkTreeModel *model;
node_t node;
stats_t sstats;
stats_t nstats;
int shownode;
/* Update the node list stuff */ /* Update the node list stuff */
w=glade_xml_get_widget(xml, "lNodeList"); w=glade_xml_get_widget(xml, "lNodeList");
...@@ -261,7 +288,6 @@ int refresh_data(gpointer data) ...@@ -261,7 +288,6 @@ int refresh_data(gpointer data)
int read_config(void) int read_config(void)
{ {
char ctrl_dir[MAX_PATH+1]; char ctrl_dir[MAX_PATH+1];
char str[1024];
char *p; char *p;
p=getenv("SBBSCTRL"); p=getenv("SBBSCTRL");
...@@ -279,6 +305,9 @@ int read_config(void) ...@@ -279,6 +305,9 @@ int read_config(void)
cfg.size=sizeof(cfg); cfg.size=sizeof(cfg);
SAFECOPY(cfg.ctrl_dir,ctrl_dir); SAFECOPY(cfg.ctrl_dir,ctrl_dir);
/* Read the ctrl struct */
refresh_events();
/* Passing any non-NULL argument is required to set up the timeout */ /* Passing any non-NULL argument is required to set up the timeout */
if(refresh_data(refresh_data)) if(refresh_data(refresh_data))
return(-1); return(-1);
...@@ -300,6 +329,7 @@ int main(int argc, char *argv[]) { ...@@ -300,6 +329,7 @@ int main(int argc, char *argv[]) {
glade_xml_signal_autoconnect(xml); glade_xml_signal_autoconnect(xml);
/* Set up the global config stuff. */ /* Set up the global config stuff. */
memset(&cfg, 0, sizeof(cfg));
if(read_config()) if(read_config())
return(1); return(1);
......
...@@ -13,5 +13,6 @@ extern GtkListStore *store; ...@@ -13,5 +13,6 @@ extern GtkListStore *store;
extern GtkTreeSelection *sel; extern GtkTreeSelection *sel;
int refresh_data(gpointer data); int refresh_data(gpointer data);
void refresh_events(void);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment