From d67fb05aeb718cb7c175c838873af4965ef042ea Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 10 Mar 2006 05:26:11 +0000 Subject: [PATCH] Navigation works. Loading data on the personal page works. This is now (effectively) a user browser. --- src/sbbs3/gtkuseredit/GNUmakefile | 8 +- src/sbbs3/gtkuseredit/events.c | 185 +++++++++++++++++++ src/sbbs3/gtkuseredit/events.h | 1 + src/sbbs3/gtkuseredit/gtkuseredit.c | 69 ++++++- src/sbbs3/gtkuseredit/gtkuseredit.glade | 236 ++++++++++-------------- src/sbbs3/gtkuseredit/gtkuseredit.h | 15 ++ src/sbbs3/gtkuseredit/objects.mk | 1 + 7 files changed, 372 insertions(+), 143 deletions(-) create mode 100644 src/sbbs3/gtkuseredit/events.c create mode 100644 src/sbbs3/gtkuseredit/events.h create mode 100644 src/sbbs3/gtkuseredit/gtkuseredit.h diff --git a/src/sbbs3/gtkuseredit/GNUmakefile b/src/sbbs3/gtkuseredit/GNUmakefile index b0da89a861..dd5290a413 100644 --- a/src/sbbs3/gtkuseredit/GNUmakefile +++ b/src/sbbs3/gtkuseredit/GNUmakefile @@ -15,6 +15,7 @@ SRC_ROOT = ../.. include $(SRC_ROOT)/build/Common.gmake +include $(SRC_ROOT)/sbbs3/sbbsdefs.mk ifeq ($(os),sunos) LDFLAGS += -lnsl @@ -22,9 +23,10 @@ endif vpath %.c .. -CFLAGS += -I.. $(SMBLIB_CFLAGS) $(XPDEV-MT_CFLAGS) `pkg-config libglade-2.0 --cflags` -LDFLAGS += $(SMBLIB_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS) `pkg-config libglade-2.0 --libs` +CFLAGS += $(SBBSDEFS) -I.. $(SMBLIB_CFLAGS) $(XPDEV-MT_CFLAGS) `pkg-config libglade-2.0 --cflags` +# Hopefully, -Wl,-E exports all symbols dynamically everywhere. +LDFLAGS += -Wl,-E -L../$(LIBODIR) $(SMBLIB_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS) `pkg-config libglade-2.0 --libs` $(GTKUSEREDIT): $(OBJS) @echo Linking $@ - $(QUIET)$(CC) $(LDFLAGS) $(OBJS) -o $@ $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) + $(QUIET)$(CC) $(LDFLAGS) $(OBJS) -o $@ -lsbbs $(SMBLIB_LIBS) $(XPDEV-MT_LIBS) diff --git a/src/sbbs3/gtkuseredit/events.c b/src/sbbs3/gtkuseredit/events.c new file mode 100644 index 0000000000..67bae62244 --- /dev/null +++ b/src/sbbs3/gtkuseredit/events.c @@ -0,0 +1,185 @@ +#include <gtk/gtk.h> +#include <glade/glade.h> + +#include "sbbs.h" +#include "dirwrap.h" + +#include "gtkuseredit.h" + +/* + * This is one of the two big gruntwork functions + * (the other being save_user) + */ +void load_user(GtkWidget *wiggy, gpointer data) +{ + GtkWidget *w; + char str[1024]; + + user.number=current_user; + if(user.number < 1 || user.number > totalusers) { + fprintf(stderr,"Attempted to load illegal user number %d.\n",user.number); + return; + } + if(getuserdat(&cfg, &user)) { + fprintf(stderr,"Error loading user %d.\n",current_user); + return; + } + + /* Alias */ + w=glade_xml_get_widget(xml, "eUserAlias"); + if(w==NULL) + fprintf(stderr,"Cannot get the alias widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.alias); + + /* Real Name */ + w=glade_xml_get_widget(xml, "eRealName"); + if(w==NULL) + fprintf(stderr,"Cannot get the real name widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.name); + + /* Computer */ + w=glade_xml_get_widget(xml, "eComputer"); + if(w==NULL) + fprintf(stderr,"Cannot get the computer widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.comp); + + /* NetMail */ + w=glade_xml_get_widget(xml, "eNetMail"); + if(w==NULL) + fprintf(stderr,"Cannot get the netmail widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.netmail); + + /* Phone */ + w=glade_xml_get_widget(xml, "ePhone"); + if(w==NULL) + fprintf(stderr,"Cannot get the phone widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.phone); + + /* Note */ + w=glade_xml_get_widget(xml, "eNote"); + if(w==NULL) + fprintf(stderr,"Cannot get the note widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.note); + + /* Comment */ + w=glade_xml_get_widget(xml, "eComment"); + if(w==NULL) + fprintf(stderr,"Cannot get the comment widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.comment); + + /* Gender */ + w=glade_xml_get_widget(xml, "eGender"); + if(w==NULL) + fprintf(stderr,"Cannot get the gender widget\n"); + else { + str[0]=user.sex; + str[1]=0; + gtk_entry_set_text(GTK_ENTRY(w),str); + } + + /* Connection */ + w=glade_xml_get_widget(xml, "eConnection"); + if(w==NULL) + fprintf(stderr,"Cannot get the connection widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.modem); + + /* Chat Handle */ + w=glade_xml_get_widget(xml, "eHandle"); + if(w==NULL) + fprintf(stderr,"Cannot get the handle widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.handle); + + /* Birthdate */ + w=glade_xml_get_widget(xml, "eBirthdate"); + if(w==NULL) + fprintf(stderr,"Cannot get the birthdate widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.birth); + + /* Password */ + w=glade_xml_get_widget(xml, "ePassword"); + if(w==NULL) + fprintf(stderr,"Cannot get the password widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.pass); + + /* Address */ + w=glade_xml_get_widget(xml, "eAddress"); + if(w==NULL) + fprintf(stderr,"Cannot get the address widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.address); + + /* Location */ + w=glade_xml_get_widget(xml, "eLocation"); + if(w==NULL) + fprintf(stderr,"Cannot get the location widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.location); + + /* Postal/ZIP code */ + w=glade_xml_get_widget(xml, "eZip"); + if(w==NULL) + fprintf(stderr,"Cannot get the postal/zip code widget\n"); + else + gtk_entry_set_text(GTK_ENTRY(w),user.zipcode); +} + +int update_current_user(int new_user) +{ + char str[11]; + GtkWidget *eCurrentUser; + + if(new_user<1 || new_user>totalusers) + new_user=current_user; + sprintf(str,"%d",new_user); + eCurrentUser=glade_xml_get_widget(xml, "eCurrentUser"); + if(eCurrentUser==NULL) { + fprintf(stderr,"Cannot get the current user widget\n"); + return(-1); + } + if(strcmp(gtk_entry_get_text(GTK_ENTRY(eCurrentUser)),str)) + gtk_entry_set_text(GTK_ENTRY(eCurrentUser), str); + if(new_user!=current_user) { + current_user=new_user; + load_user(eCurrentUser,NULL); + } + return(0); +} + +void current_user_changed(GtkWidget *w, gpointer data) +{ + int new_user; + + new_user=atoi(gtk_entry_get_text(GTK_ENTRY(w))); + update_current_user(new_user); +} + +void first_user(GtkWidget *w, gpointer data) +{ + update_current_user(1); +} + +void prev_user(GtkWidget *w, gpointer data) +{ + update_current_user(current_user-1); +} + +void next_user(GtkWidget *w, gpointer data) +{ + update_current_user(current_user+1); +} + +void last_user(GtkWidget *w, gpointer data) +{ + update_current_user(totalusers); +} diff --git a/src/sbbs3/gtkuseredit/events.h b/src/sbbs3/gtkuseredit/events.h new file mode 100644 index 0000000000..34f5f8d305 --- /dev/null +++ b/src/sbbs3/gtkuseredit/events.h @@ -0,0 +1 @@ +int update_current_user(int new_user); diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.c b/src/sbbs3/gtkuseredit/gtkuseredit.c index a4782967ba..ece6bcf8b9 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.c +++ b/src/sbbs3/gtkuseredit/gtkuseredit.c @@ -1,16 +1,79 @@ #include <gtk/gtk.h> #include <glade/glade.h> -int main(int argc, char *argv[]) { - GladeXML *xml; +#include "sbbs.h" +#include "dirwrap.h" + +#include "events.h" +#include "gtkuseredit.h" + +scfg_t cfg; +user_t user; +GladeXML *xml; +int totalusers=0; +int current_user=0; + +/* Refreshes global variables... ie: Number of users */ +int refresh_globals(void) +{ + gchar newlabel[14]; + GtkWidget *lTotalUsers; + + totalusers=lastuser(&cfg); + sprintf(newlabel,"of %d",totalusers); + lTotalUsers=glade_xml_get_widget(xml, "lTotalUsers"); + if(lTotalUsers==NULL) { + fprintf(stderr,"Cannot get the total users widget\n"); + return(-1); + } + gtk_label_set_text(GTK_LABEL(lTotalUsers), newlabel); + return(0); +} + +/* Initializes global stuff, loads first user etc */ +int read_config(void) +{ + char ctrl_dir[MAX_PATH+1]; + char str[1024]; + char *p; + p=getenv("SBBSCTRL"); + if(p==NULL) { + fprintf(stderr,"SBBSCTRL not set\n"); + return(-1); + } + SAFECOPY(ctrl_dir, p); + prep_dir("",ctrl_dir,sizeof(ctrl_dir)); + if(!isdir(ctrl_dir)) { + fprintf(stderr,"SBBSCTRL does not point to a directory\n"); + return(-1); + } + /* Read .cfg files here */ + memset(&cfg,0,sizeof(cfg)); + cfg.size=sizeof(cfg); + SAFECOPY(cfg.ctrl_dir,ctrl_dir); + if(!load_cfg(&cfg, NULL, TRUE, str)) { + fprintf(stderr,"Cannot load configuration data\n"); + return(-1); + } + if(refresh_globals()) + return(-1); + if(totalusers > 0) + update_current_user(1); + return(0); +} + +int main(int argc, char *argv[]) { gtk_init(&argc, &argv); glade_init(); /* load the interface */ - xml = glade_xml_new("gtkuseredit.glade", NULL, NULL); + xml = glade_xml_new("gtkuseredit.glade", "MainWindow", NULL); /* connect the signals in the interface */ glade_xml_signal_autoconnect(xml); + /* Set up the global config stuff. */ + if(read_config()) + return(1); /* start the event loop */ gtk_main(); return 0; diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.glade b/src/sbbs3/gtkuseredit/gtkuseredit.glade index c00043de5b..07795ed384 100644 --- a/src/sbbs3/gtkuseredit/gtkuseredit.glade +++ b/src/sbbs3/gtkuseredit/gtkuseredit.glade @@ -11,6 +11,7 @@ <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="icon_name">gtk-execute</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> @@ -18,6 +19,7 @@ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> + <signal name="destroy" handler="gtk_main_quit" last_modification_time="Fri, 10 Mar 2006 02:32:02 GMT"/> <child> <widget class="GtkVBox" id="vbox1"> @@ -45,7 +47,7 @@ <property name="visible">True</property> <property name="label">gtk-new</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_new1_activate" last_modification_time="Thu, 09 Mar 2006 21:02:51 GMT"/> + <signal name="activate" handler="new_user" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> @@ -54,7 +56,7 @@ <property name="visible">True</property> <property name="label">gtk-save</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_save1_activate" last_modification_time="Thu, 09 Mar 2006 21:02:51 GMT"/> + <signal name="activate" handler="save_user" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> @@ -63,7 +65,7 @@ <property name="visible">True</property> <property name="label">gtk-refresh</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_save_as1_activate" last_modification_time="Thu, 09 Mar 2006 21:02:51 GMT"/> + <signal name="activate" handler="load_user" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> @@ -72,7 +74,7 @@ <property name="visible">True</property> <property name="label">gtk-delete</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_delete2_activate" last_modification_time="Thu, 09 Mar 2006 21:16:16 GMT"/> + <signal name="activate" handler="delete_user" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> @@ -81,7 +83,7 @@ <property name="visible">True</property> <property name="label">gtk-remove</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_remove1_activate" last_modification_time="Thu, 09 Mar 2006 21:16:16 GMT"/> + <signal name="activate" handler="disable_user" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> @@ -96,7 +98,7 @@ <property name="visible">True</property> <property name="label">gtk-quit</property> <property name="use_stock">True</property> - <signal name="activate" handler="on_quit1_activate" last_modification_time="Thu, 09 Mar 2006 21:02:51 GMT"/> + <signal name="activate" handler="gtk_main_quit" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> </widget> @@ -114,11 +116,11 @@ <widget class="GtkMenu" id="menuitem4_menu"> <child> - <widget class="GtkMenuItem" id="about1"> + <widget class="GtkImageMenuItem" id="about1"> <property name="visible">True</property> - <property name="label" translatable="yes">_About</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_about1_activate" last_modification_time="Thu, 09 Mar 2006 21:02:51 GMT"/> + <property name="label">gtk-about</property> + <property name="use_stock">True</property> + <signal name="activate" handler="show_about_box" last_modification_time="Fri, 10 Mar 2006 02:20:53 GMT"/> </widget> </child> </widget> @@ -144,10 +146,13 @@ <child> <widget class="GtkToolButton" id="newuserbutton"> <property name="visible">True</property> + <property name="label" translatable="yes">New</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-new</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="new_user" last_modification_time="Fri, 10 Mar 2006 02:22:12 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -156,12 +161,15 @@ </child> <child> - <widget class="GtkToolButton" id="toolbutton8"> + <widget class="GtkToolButton" id="bSaveUser"> <property name="visible">True</property> + <property name="label" translatable="yes">Save</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-save</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="save_user" last_modification_time="Fri, 10 Mar 2006 02:22:50 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -172,10 +180,13 @@ <child> <widget class="GtkToolButton" id="toolbutton9"> <property name="visible">True</property> + <property name="label" translatable="yes">Refresh</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-refresh</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="load_user" last_modification_time="Fri, 10 Mar 2006 02:23:25 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -186,10 +197,13 @@ <child> <widget class="GtkToolButton" id="toolbutton10"> <property name="visible">True</property> + <property name="label" translatable="yes">Delete</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-delete</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="delete_user" last_modification_time="Fri, 10 Mar 2006 02:24:05 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -204,6 +218,7 @@ <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="disable_user" last_modification_time="Fri, 10 Mar 2006 02:25:11 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -254,56 +269,19 @@ <child> <widget class="GtkToolButton" id="toolbutton12"> <property name="visible">True</property> + <property name="label" translatable="yes">Find</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-find</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">True</property> + <signal name="clicked" handler="find_user" last_modification_time="Fri, 10 Mar 2006 02:26:06 GMT"/> </widget> <packing> <property name="expand">False</property> <property name="homogeneous">True</property> </packing> </child> - - <child> - <widget class="GtkSeparatorToolItem" id="separatortoolitem2"> - <property name="visible">True</property> - <property name="draw">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> - <widget class="GtkToolItem" id="toolitem3"> - <property name="visible">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - - <child> - <widget class="GtkEntry" id="entry3"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> </widget> <packing> <property name="padding">0</property> @@ -344,7 +322,7 @@ </child> <child> - <widget class="GtkEntry" id="entry4"> + <widget class="GtkEntry" id="eUserAlias"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -362,71 +340,6 @@ <property name="fill">False</property> </packing> </child> - - <child> - <widget class="GtkLabel" id="label8"> - <property name="visible">True</property> - <property name="label" translatable="yes">Number</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entry5"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">5</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - <property name="width_chars">5</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entry6"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">8</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">*</property> - <property name="activates_default">False</property> - <property name="width_chars">8</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> </widget> <packing> <property name="padding">0</property> @@ -775,7 +688,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry7"> + <widget class="GtkEntry" id="eRealName"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -815,7 +728,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry8"> + <widget class="GtkEntry" id="eComputer"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -855,7 +768,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry9"> + <widget class="GtkEntry" id="eNetMail"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -895,7 +808,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry10"> + <widget class="GtkEntry" id="ePhone"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -935,7 +848,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry11"> + <widget class="GtkEntry" id="eNote"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -975,7 +888,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry17"> + <widget class="GtkEntry" id="eComment"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1015,7 +928,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry12"> + <widget class="GtkEntry" id="eGender"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1055,7 +968,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry13"> + <widget class="GtkEntry" id="eConnection"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1095,7 +1008,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry14"> + <widget class="GtkEntry" id="eHandle"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1135,7 +1048,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry15"> + <widget class="GtkEntry" id="eBirthdate"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1175,7 +1088,7 @@ <property name="spacing">0</property> <child> - <widget class="GtkEntry" id="entry16"> + <widget class="GtkEntry" id="ePassword"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1254,7 +1167,7 @@ <property name="column_spacing">0</property> <child> - <widget class="GtkEntry" id="entry21"> + <widget class="GtkEntry" id="eAddress"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1277,7 +1190,7 @@ </child> <child> - <widget class="GtkEntry" id="entry22"> + <widget class="GtkEntry" id="eZip"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1300,7 +1213,7 @@ </child> <child> - <widget class="GtkEntry" id="entry23"> + <widget class="GtkEntry" id="eLocation"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -5304,12 +5217,13 @@ Item2</property> <property name="show_arrow">True</property> <child> - <widget class="GtkToolButton" id="toolbutton14"> + <widget class="GtkToolButton" id="bFirstUser"> <property name="visible">True</property> <property name="stock_id">gtk-goto-first</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">False</property> + <signal name="clicked" handler="first_user" last_modification_time="Fri, 10 Mar 2006 02:26:52 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -5318,12 +5232,13 @@ Item2</property> </child> <child> - <widget class="GtkToolButton" id="toolbutton15"> + <widget class="GtkToolButton" id="bPrevUser"> <property name="visible">True</property> <property name="stock_id">gtk-go-back</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">False</property> + <signal name="clicked" handler="prev_user" last_modification_time="Fri, 10 Mar 2006 02:27:58 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -5339,7 +5254,7 @@ Item2</property> <property name="is_important">False</property> <child> - <widget class="GtkEntry" id="entry53"> + <widget class="GtkEntry" id="eCurrentUser"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -5350,6 +5265,7 @@ Item2</property> <property name="invisible_char">*</property> <property name="activates_default">False</property> <property name="width_chars">5</property> + <signal name="focus_out_event" handler="current_user_changed" last_modification_time="Fri, 10 Mar 2006 04:46:51 GMT"/> </widget> </child> </widget> @@ -5367,7 +5283,7 @@ Item2</property> <property name="is_important">False</property> <child> - <widget class="GtkLabel" id="label61"> + <widget class="GtkLabel" id="lTotalUsers"> <property name="visible">True</property> <property name="label" translatable="yes">of 0</property> <property name="use_underline">False</property> @@ -5393,12 +5309,13 @@ Item2</property> </child> <child> - <widget class="GtkToolButton" id="toolbutton16"> + <widget class="GtkToolButton" id="bNextUser"> <property name="visible">True</property> <property name="stock_id">gtk-go-forward</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">False</property> + <signal name="clicked" handler="next_user" last_modification_time="Fri, 10 Mar 2006 02:28:14 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -5407,12 +5324,13 @@ Item2</property> </child> <child> - <widget class="GtkToolButton" id="toolbutton17"> + <widget class="GtkToolButton" id="bLastUser"> <property name="visible">True</property> <property name="stock_id">gtk-goto-last</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">False</property> + <signal name="clicked" handler="last_user" last_modification_time="Fri, 10 Mar 2006 02:28:25 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -5430,4 +5348,48 @@ Item2</property> </child> </widget> +<widget class="GtkWindow" id="AboutWindow"> + <property name="width_request">272</property> + <property name="height_request">118</property> + <property name="visible">True</property> + <property name="title" translatable="yes">About Menu Editor</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">False</property> + <property name="destroy_with_parent">True</property> + <property name="icon_name">gtk-about</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + + <child> + <widget class="GtkLabel" id="label73"> + <property name="visible">True</property> + <property name="label" translatable="yes">GNU GPL, Copyright 2006, Rob Swindell. + +Written By Stephen Hurd + +Blah Blah Blah.</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + </child> +</widget> + </glade-interface> diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.h b/src/sbbs3/gtkuseredit/gtkuseredit.h new file mode 100644 index 0000000000..9cdc5bf437 --- /dev/null +++ b/src/sbbs3/gtkuseredit/gtkuseredit.h @@ -0,0 +1,15 @@ +#ifndef _GTKUSEREDIT_H_ +#define _GTKUSEREDIT_H_ + +#include <gtk/gtk.h> +#include <glade/glade.h> + +#include "sbbs.h" + +extern scfg_t cfg; +extern user_t user; +extern GladeXML *xml; +extern int totalusers; +extern int current_user; + +#endif diff --git a/src/sbbs3/gtkuseredit/objects.mk b/src/sbbs3/gtkuseredit/objects.mk index 3e45587b44..fdc78a83ec 100644 --- a/src/sbbs3/gtkuseredit/objects.mk +++ b/src/sbbs3/gtkuseredit/objects.mk @@ -1,2 +1,3 @@ OBJS := \ + $(MTOBJODIR)$(DIRSEP)events$(OFILE) \ $(MTOBJODIR)$(DIRSEP)gtkuseredit$(OFILE) \ -- GitLab