Replace buttons with menu.
Fix initial state bug.
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@1021
959494ce-11ee-0310-bf91-
de5d638817bd
#include <signal.h>
#include <errno.h>
#include <gtk/gtk.h>
#include <signal.h>
#include <errno.h>
#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
#include <locale.h>
#include <libintl.h>
#include <pwd.h>
#include <locale.h>
#include <libintl.h>
#include <pwd.h>
char *cfname;
GtkWindow *rootwnd = NULL;
GtkListStore *shares;
char *cfname;
GtkWindow *rootwnd = NULL;
GtkListStore *shares;
int ignoreclose = 0;
void astcancel(GtkWidget *widget, gpointer uudata);
int ignoreclose = 0;
void astcancel(GtkWidget *widget, gpointer uudata);
void cb_cfw_orport_toggled(GtkWidget *widget, gpointer uudata);
void cb_cfw_oraddr_toggled(GtkWidget *widget, gpointer uudata);
void cb_cfw_uinet_toggled(GtkWidget *widget, gpointer uudata);
void cb_cfw_orport_toggled(GtkWidget *widget, gpointer uudata);
void cb_cfw_oraddr_toggled(GtkWidget *widget, gpointer uudata);
void cb_cfw_uinet_toggled(GtkWidget *widget, gpointer uudata);
-void cb_cfw_save_clicked(GtkWidget *widget, gpointer uudata);
-void cb_cfw_quit_clicked(GtkWidget *widget, gpointer uudata);
+void cb_cfw_save_activate(GtkWidget *widget, gpointer uudata);
+void cb_cfw_quit_activate(GtkWidget *widget, gpointer uudata);
void cb_cfw_shareadd_clicked(GtkWidget *widget, gpointer uudata);
void cb_cfw_sharerem_clicked(GtkWidget *widget, gpointer uudata);
void cb_cfw_shareadd_clicked(GtkWidget *widget, gpointer uudata);
void cb_cfw_sharerem_clicked(GtkWidget *widget, gpointer uudata);
struct cfvar *v;
v = findcfvar(name);
struct cfvar *v;
v = findcfvar(name);
+ if(!strcmp(v->val, val))
+ return;
free(v->val);
v->val = sstrdup(val);
free(v->val);
v->val = sstrdup(val);
}
int msgbox(int type, int buttons, char *format, ...)
}
int msgbox(int type, int buttons, char *format, ...)
if(val != NULL)
free(val);
fclose(cf);
if(val != NULL)
free(val);
fclose(cf);
} while(gtk_tree_model_iter_next(GTK_TREE_MODEL(shares), &iter));
}
fclose(cf);
} while(gtk_tree_model_iter_next(GTK_TREE_MODEL(shares), &iter));
}
fclose(cf);
void cfw2conf(void)
{
struct cfvar *var;
void cfw2conf(void)
{
struct cfvar *var;
for(var = config; var->name != NULL; var++) {
if(var->cfww != NULL) {
for(var = config; var->name != NULL; var++) {
if(var->cfww != NULL) {
+ val = gtk_entry_get_text(GTK_ENTRY(*(var->cfww)));
+ if(!strcmp(var->val, val))
+ continue;
- var->val = sstrdup(gtk_entry_get_text(GTK_ENTRY(*(var->cfww))));
+ var->val = sstrdup(val);
+ dirty = 1;
}
}
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_mode_act))) {
}
}
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cfw_mode_act))) {
gtk_widget_set_sensitive(GTK_WIDGET(cfw_uibox), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
}
gtk_widget_set_sensitive(GTK_WIDGET(cfw_uibox), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
}
-void cb_cfw_save_clicked(GtkWidget *widget, gpointer uudata)
+void cb_cfw_save_activate(GtkWidget *widget, gpointer uudata)
-void cb_cfw_quit_clicked(GtkWidget *widget, gpointer uudata)
+void cb_cfw_quit_activate(GtkWidget *widget, gpointer uudata)
{
gtk_main_quit();
state = -1;
{
gtk_main_quit();
state = -1;
}
ex = !access(cfname, F_OK);
}
ex = !access(cfname, F_OK);
- if(!ex && (state == -1)) {
- if(msgbox(GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("It appears that you have not run this setup program before. Would you like to run the first-time setup assistant?")) == GTK_RESPONSE_YES)
- state = 1;
- else
+ if(state == -1) {
+ if(!ex) {
+ if(msgbox(GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("It appears that you have not run this setup program before. Would you like to run the first-time setup assistant?")) == GTK_RESPONSE_YES)
+ state = 1;
+ else
+ state = 0;
+ } else {
}
if(ex && (state == 0)) {
}
if(ex && (state == 0)) {