From 6b411f730a0025003ac409d0f852363c3169860b Mon Sep 17 00:00:00 2001 From: nbysani2 Date: Fri, 13 Mar 2009 00:25:25 +0000 Subject: [PATCH] starting on the gui code.. git-svn-id: https://subversion.cs.uiuc.edu/svn/bang/eoh2009@164 69d76c3e-0761-0410-948c-9895a8bb34fc --- src/app/file-menu.c | 52 +++++++++++++++++++-------------- src/app/file-menu.h | 7 +++-- src/app/main.c | 4 +-- src/app/menus.c | 4 ++- src/app/menus.h | 2 +- src/app/tabs.c | 0 src/app/tabs.h | 7 ----- src/base/bang-core.c | 3 ++ src/base/bang-module-api.c | 1 - src/base/bang-module-registry.h | 1 - src/base/bang.h | 1 + 11 files changed, 44 insertions(+), 38 deletions(-) delete mode 100644 src/app/tabs.c delete mode 100644 src/app/tabs.h diff --git a/src/app/file-menu.c b/src/app/file-menu.c index fdc81b1..79b8a7b 100644 --- a/src/app/file-menu.c +++ b/src/app/file-menu.c @@ -3,34 +3,42 @@ #include #include +static GtkWidget *notebook = NULL; + +typedef void (*GUI_module_init)(GtkWidget**,GtkWidget**); + +static void deal_with_module(gchar *filename) { + char *module_name; + unsigned char *module_version; + BANG_module* module; + + BANG_new_module(filename, &module_name, &module_version); + module = BANG_get_module(module_name, module_version); + + + void* BANG_get_symbol(BANG_module *module, char *symbol); +} + void BMACHINE_open_module() { - - GtkWidget *dialog = gtk_file_chooser_dialog_new ("Open a Multiplicity module",NULL,GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) - { - char *filename; - - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); - // do some stuff with filename - g_free (filename); - } - - gtk_widget_destroy (dialog); - + GtkWidget *dialog = gtk_file_chooser_dialog_new("Open a module",NULL,GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); + + if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { + gchar *filename; + + filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog)); + deal_with_module(filename); + } + + gtk_widget_destroy (dialog); } -/* -void BMACHINE_close_module(GtkWidget *widget) { - - -}*/ /* Shut down Multiplicity */ void BMACHINE_exit() { BANG_close(); gtk_main_quit(); } + +void BMACHINE_create_file_menu(GtkWidget *book) { + notebook = book; +} diff --git a/src/app/file-menu.h b/src/app/file-menu.h index 1d45cca..5f594bf 100644 --- a/src/app/file-menu.h +++ b/src/app/file-menu.h @@ -1,7 +1,10 @@ #ifndef __FILE_MENU_H #define __FILE_MENU_H #include -void BMACHINE_open_module(GtkWidget *widget); -//void BMACHINE_close_module(GtkWidget *widget); + +void BMACHINE_open_module(); + void BMACHINE_exit(); + +void BMACHINE_create_file_menu(GtkWidget *notebook); #endif diff --git a/src/app/main.c b/src/app/main.c index 95c283d..bce721b 100644 --- a/src/app/main.c +++ b/src/app/main.c @@ -46,7 +46,6 @@ #include"statusbar.h" #include"server-menu.h" #include"file-menu.h" -#include"tabs.h" #include #include #include @@ -54,7 +53,6 @@ #include #include -typedef void (*GUI_module_init)(GtkWidget**,GtkWidget**); static GtkWidget *window; static GtkWidget *vbox; @@ -125,7 +123,7 @@ int main(int argc, char **argv) { /* * set up the layout of the top level window */ - BMACHINE_create_menus(vbox,window); + BMACHINE_create_menus(vbox,window,notebook); gtk_box_pack_start(GTK_BOX(vbox),notebook,TRUE,TRUE,0); gtk_box_pack_end(GTK_BOX(vbox),statusbar,FALSE,FALSE,0); diff --git a/src/app/menus.c b/src/app/menus.c index 7761402..dc6361b 100644 --- a/src/app/menus.c +++ b/src/app/menus.c @@ -21,7 +21,7 @@ static const GtkActionEntry entries[] = static const guint n_entries = G_N_ELEMENTS(entries); -GtkUIManager* BMACHINE_create_menus(GtkWidget *vbox, GtkWidget *window) { +GtkUIManager* BMACHINE_create_menus(GtkWidget *vbox, GtkWidget *window, GtkWidget *notebook) { GtkActionGroup *act_grp = gtk_action_group_new("MenuBarAactions"); gtk_action_group_add_actions(act_grp,entries,n_entries,NULL); @@ -43,5 +43,7 @@ GtkUIManager* BMACHINE_create_menus(GtkWidget *vbox, GtkWidget *window) { gtk_window_add_accel_group(GTK_WINDOW(window),gtk_ui_manager_get_accel_group(m_manager)); + BMACHINE_create_file_menu(notebook); + return m_manager; } diff --git a/src/app/menus.h b/src/app/menus.h index 522ced9..5e166a1 100644 --- a/src/app/menus.h +++ b/src/app/menus.h @@ -1,5 +1,5 @@ #ifndef __MENUS_H #define __MENUS_H #include -GtkUIManager* BMACHINE_create_menus(GtkWidget *vbox, GtkWidget *window); +GtkUIManager* BMACHINE_create_menus(GtkWidget *vbox, GtkWidget *window, GtkWidget *notebook); #endif diff --git a/src/app/tabs.c b/src/app/tabs.c deleted file mode 100644 index e69de29..0000000 diff --git a/src/app/tabs.h b/src/app/tabs.h deleted file mode 100644 index d3868c6..0000000 --- a/src/app/tabs.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __SERVER_MENU_H -#define __SERVER_MENU_H -#include -#include - -void BMACHINE_open_module -#endif \ No newline at end of file diff --git a/src/base/bang-core.c b/src/base/bang-core.c index 60c50bd..058a714 100644 --- a/src/base/bang-core.c +++ b/src/base/bang-core.c @@ -9,6 +9,7 @@ #include"bang-core.h" #include"bang-net.h" #include"bang-com.h" +#include"bang-module-registry.h" #include"bang-routing.h" #include"bang-signals.h" #include @@ -46,12 +47,14 @@ void BANG_init(int *argc, char **argv) { BANG_com_init(); BANG_net_init(set_port,0); BANG_route_init(); + BANG_module_registry_init(); } void BANG_close() { #ifdef BDEBUG_1 fprintf(stderr,"BANG library closing.\n"); #endif + BANG_module_registry_close(); BANG_route_close(); BANG_com_close(); BANG_net_close(); diff --git a/src/base/bang-module-api.c b/src/base/bang-module-api.c index a32da48..04bd4e3 100644 --- a/src/base/bang-module-api.c +++ b/src/base/bang-module-api.c @@ -75,7 +75,6 @@ void BANG_get_me_peers(BANG_module_info *info) { data = malloc(data_length); strcpy(data,info->module_name); - data[info->module_name_length] = 0; memcpy(data + info->module_name_length + 1, info->module_version, 3); memcpy(data + info->module_name_length + 4, info->peers_info->uuids[info->my_id], sizeof(uuid_t)); diff --git a/src/base/bang-module-registry.h b/src/base/bang-module-registry.h index 5ff6858..bdb16cb 100644 --- a/src/base/bang-module-registry.h +++ b/src/base/bang-module-registry.h @@ -54,5 +54,4 @@ void BANG_module_inform_new_peer(char *module_name, unsigned char *module_versio void BANG_module_registry_init(); void BANG_module_registry_close(); - #endif diff --git a/src/base/bang.h b/src/base/bang.h index 4f94320..dbc7db6 100644 --- a/src/base/bang.h +++ b/src/base/bang.h @@ -12,4 +12,5 @@ #include"bang-signals.h" #include"bang-net.h" #include"bang-module.h" +#include"bang-module-registry.h" #endif