From 8b3aa75c5407d4917c6c54484f07c5472894def5 Mon Sep 17 00:00:00 2001 From: Jan Lipovský Date: Thu, 30 Dec 2010 10:59:31 +0100 Subject: ncpmount wrapper --- gncpmount.c | 124 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 68 insertions(+), 56 deletions(-) (limited to 'gncpmount.c') diff --git a/gncpmount.c b/gncpmount.c index 2a61dae..bd859ba 100644 --- a/gncpmount.c +++ b/gncpmount.c @@ -1,38 +1,56 @@ #include #include +#include "ncpwrapper.h" #include "dialogs.h" #include "globals.h" #define WIDTH 400 #define HEIGHT -1 +/** +* Load savet options to GUI +*/ +static void +set_gui_from_cmdparams () +{ + if(cmd_params.username != NULL) + gtk_entry_set_text(GTK_ENTRY(gui.entry_username), cmd_params.username); + if(cmd_params.password != NULL) + gtk_entry_set_text(GTK_ENTRY(gui.entry_password), cmd_params.password); + + if(cmd_params.server != NULL) + gtk_entry_set_text(GTK_ENTRY(gui.entry_server), cmd_params.server); + + if(cmd_params.dns_name != NULL) + gtk_entry_set_text(GTK_ENTRY(gui.entry_dns_server), cmd_params.dns_name); + + if(cmd_params.mount_point != NULL) + gtk_entry_set_text(GTK_ENTRY(gui.entry_mount_point), cmd_params.mount_point); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui.check_n), cmd_params.n); +} /** -* Show info, error or warning message +* Save options set in GUI by user to cmd_params */ -void -show_message (GtkMessageType type, const gchar *format, gchar *msgtxt, const gchar *format_sec, gchar *msgtxt_sec) +static void +save_gui_to_cmdparams() { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new ( GTK_WINDOW (gui.win), - GTK_DIALOG_DESTROY_WITH_PARENT, - type, - GTK_BUTTONS_OK, - format, - msgtxt); - - gtk_message_dialog_format_secondary_text ( GTK_MESSAGE_DIALOG (dialog), - format_sec, - msgtxt_sec); - gtk_dialog_run ( GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + set_parameter_text ((gui.entry_dns_server), &cmd_params.dns_name); + set_parameter_text ((gui.entry_mount_point), &cmd_params.mount_point); + set_parameter_text ((gui.entry_password), &cmd_params.password); + set_parameter_text ((gui.entry_server), &cmd_params.server); + set_parameter_text ((gui.entry_username), &cmd_params.username); + + /* Checkboxes */ + set_parameter_bool ((gui.check_n), &cmd_params.n); } + /** * Create Open folder dialog and let user select folder * for mount point @@ -59,7 +77,21 @@ open_folder (GtkWidget *wid, GtkWidget *win) } +/** +* Call ncpmount command +*/ +static void +call_ncpmount (GtkWidget *wid, GtkWidget *win) +{ + /* TODO - kontrola vyplneni udaju */ + save_gui_to_cmdparams(); + run_ncpmount(); +} + +/** +* Set if -P (password) is used or not +*/ static void passwd_usage (GtkWidget *wid, GtkWidget *win) { @@ -82,40 +114,18 @@ passwd_usage (GtkWidget *wid, GtkWidget *win) } - +/** +* Open Options dialog +*/ static void run_options_dialog ( GtkWidget *w, gpointer data ) { - options_dialog(&gui); + options_dialog(); } -static void -set_gui_from_cmdparams () -{ - if(cmd_params.username != NULL) - gtk_entry_set_text(GTK_ENTRY(gui.entry_username), cmd_params.username); - - if(cmd_params.password != NULL) - gtk_entry_set_text(GTK_ENTRY(gui.entry_password), cmd_params.password); - - if(cmd_params.server != NULL) - gtk_entry_set_text(GTK_ENTRY(gui.entry_server), cmd_params.server); - - if(cmd_params.dns_name != NULL) - gtk_entry_set_text(GTK_ENTRY(gui.entry_dns_server), cmd_params.dns_name); - - if(cmd_params.mount_point != NULL) - gtk_entry_set_text(GTK_ENTRY(gui.entry_mount_point), cmd_params.mount_point); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui.check_n), cmd_params.n); -} - - - - -/* Menu, an array of GtkItemFactoryEntry structures that defines each menu item */ +/** Menu, an array of GtkItemFactoryEntry structures that defines each menu item */ static GtkItemFactoryEntry menu_items[] = { { "/_File", NULL, NULL, 0, "" }, { "/File/_New", "N", NULL, 0, "", GTK_STOCK_NEW }, @@ -129,11 +139,13 @@ static GtkItemFactoryEntry menu_items[] = { { "/_Help/About", NULL, NULL, 0, "" }, }; - +/** Menu items count */ static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); -/* Returns a menubar widget made from the above menu */ +/** +* Returns a menubar widget made from the above menu +*/ static GtkWidget * get_menubar_menu( GtkWidget *window ) { @@ -223,25 +235,25 @@ int main (int argc, char *argv[]) gtk_container_add(GTK_CONTAINER(halign), label); gtk_table_attach(GTK_TABLE(gui.table), halign, 0, 1, 0, 1, GTK_FILL , GTK_FILL | GTK_EXPAND, 4, 0); + + gui.entry_username = gtk_entry_new (); + gtk_table_attach_defaults (GTK_TABLE (gui.table), gui.entry_username, 1, 2, 0, 1); + halign = gtk_alignment_new(0, 0, 0, 1); label = gtk_label_new ("Password [-P]:"); gtk_container_add(GTK_CONTAINER(halign), label); gtk_table_attach(GTK_TABLE(gui.table), halign, 0, 1, 1, 2, GTK_FILL, GTK_FILL | GTK_EXPAND, 4, 0); - /* Chcekbox */ - gui.check_n = gtk_check_button_new_with_label ("Do not use any password [-n]"); - g_signal_connect (G_OBJECT (gui.check_n), "toggled", G_CALLBACK (passwd_usage), NULL); - gtk_table_attach_defaults (GTK_TABLE (gui.table), gui.check_n, 1, 2, 2, 3); - - - /* Entry */ - gui.entry_username = gtk_entry_new (); - gtk_table_attach_defaults (GTK_TABLE (gui.table), gui.entry_username, 1, 2, 0, 1); gui.entry_password = gtk_entry_new (); gtk_entry_set_visibility (GTK_ENTRY(gui.entry_password), FALSE); gtk_table_attach_defaults (GTK_TABLE (gui.table), gui.entry_password, 1, 2, 1, 2); + /* Chcekbox */ + gui.check_n = gtk_check_button_new_with_label ("Do not use any password [-n]"); + g_signal_connect (G_OBJECT (gui.check_n), "toggled", G_CALLBACK (passwd_usage), NULL); + gtk_table_attach_defaults (GTK_TABLE (gui.table), gui.check_n, 1, 2, 2, 3); + /* Page SERVER */ @@ -294,7 +306,7 @@ int main (int argc, char *argv[]) /* Buttons */ gui.btn_mount = gtk_button_new_with_label ("Mount"); - g_signal_connect (gui.btn_mount, "clicked", gtk_main_quit, NULL); + g_signal_connect (gui.btn_mount, "clicked", G_CALLBACK(call_ncpmount), NULL); gtk_box_pack_start (GTK_BOX (gui.btnbox), gui.btn_mount, TRUE, TRUE, 0); gui.btn_close = gtk_button_new_from_stock (GTK_STOCK_CLOSE); -- cgit