summaryrefslogtreecommitdiffstats
path: root/gncpmount.c
diff options
context:
space:
mode:
Diffstat (limited to 'gncpmount.c')
-rw-r--r--gncpmount.c124
1 files changed, 68 insertions, 56 deletions
diff --git a/gncpmount.c b/gncpmount.c
index 2a61dae..bd859ba 100644
--- a/gncpmount.c
+++ b/gncpmount.c
@@ -1,38 +1,56 @@
#include <stdlib.h>
#include <gtk/gtk.h>
+#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, "<Branch>" },
{ "/File/_New", "<control>N", NULL, 0, "<StockItem>", GTK_STOCK_NEW },
@@ -129,11 +139,13 @@ static GtkItemFactoryEntry menu_items[] = {
{ "/_Help/About", NULL, NULL, 0, "<Item>" },
};
-
+/** 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);