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)
}
}
}
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);
void on_phone_number_filter1_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_force_event(GtkWidget *wiggy, gpointer data);
void on_force_qnet(GtkWidget *wiggy, gpointer data);
#endif
......@@ -8,42 +8,37 @@ int nodes=0;
GtkListStore *store = NULL;
GtkTreeSelection *sel;
/* Refreshes global variables... ie: Number of users */
int refresh_data(gpointer data)
void refresh_events(void)
{
char str[1024];
char str2[1024];
char str3[1024];
char *p;
int i;
GtkWidget *w;
int i,j;
GtkTreeIter curr;
GtkTreeModel *model;
node_t node;
stats_t sstats;
stats_t nstats;
int shownode;
GtkWidget *menu;
char str[1024];
/* Read .cfg files here */
free_cfg(&cfg);
if(!load_cfg(&cfg, NULL, TRUE, str)) {
fprintf(stderr,"Cannot load configuration data\n");
return(-1);
return;
}
/* Update timed events */
#if 0
w=glade_xml_get_widget(xml, "force_timed_event1");
if(w==NULL)
fprintf(stderr,"Cannot get timed event widget\n");
else {
GtkWidget *menu;
menu=gtk_menu_item_get_submenu(w);
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) {
GList *evts;
evts = gtk_container_get_children(GTK_CONTAINER(menu));
for(i=0; i<cfg.total_event; i++) {
for(i=0; i<cfg.total_events; i++) {
w = gtk_menu_item_new_with_label(cfg.event[i]->code);
gtk_widget_show (w);
gtk_container_add (GTK_CONTAINER (menu), w);
g_signal_connect ((gpointer) w, "activate"
,G_CALLBACK (on_force_event)
,NULL);
}
}
else
......@@ -55,8 +50,40 @@ int refresh_data(gpointer data)
if(w==NULL)
fprintf(stderr,"Cannot get network callout widget\n");
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 */
w=glade_xml_get_widget(xml, "lNodeList");
......@@ -261,7 +288,6 @@ int refresh_data(gpointer data)
int read_config(void)
{
char ctrl_dir[MAX_PATH+1];
char str[1024];
char *p;
p=getenv("SBBSCTRL");
......@@ -279,6 +305,9 @@ int read_config(void)
cfg.size=sizeof(cfg);
SAFECOPY(cfg.ctrl_dir,ctrl_dir);
/* Read the ctrl struct */
refresh_events();
/* Passing any non-NULL argument is required to set up the timeout */
if(refresh_data(refresh_data))
return(-1);
......@@ -300,6 +329,7 @@ int main(int argc, char *argv[]) {
glade_xml_signal_autoconnect(xml);
/* Set up the global config stuff. */
memset(&cfg, 0, sizeof(cfg));
if(read_config())
return(1);
......
......@@ -13,5 +13,6 @@ extern GtkListStore *store;
extern GtkTreeSelection *sel;
int refresh_data(gpointer data);
void refresh_events(void);
#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