#include #include #include #include #include #include "include/structures.h" #include "include/functions.h" #include "include/vars.h" /*---------------------------------------------------------------- * MainWindow * * * * Main SLMC window, with mail list, visualization, menu... * * * * * * -------------------------------------------------------------*/ int main(int argc,char **argv) { GtkWidget *Container; int rc; char *zErrMsg = 0; char *Database; if(argv[1]) Database = argv[1]; else Database = "slmc-db"; Widgets.New.ToEmail = ""; Widgets.New.CCEmail = ""; Widgets.New.Subject = ""; Widgets.New.Text = ""; Widgets.Tr.ToEmail = ""; Widgets.Tr.CCEmail = ""; Widgets.Tr.Subject = ""; Widgets.Tr.Text = ""; Widgets.Answer.ToEmail = ""; Widgets.Answer.CCEmail = ""; Widgets.Answer.Subject = ""; Widgets.Answer.Text = ""; gtk_init(&argc,&argv); // openning a SQLITE3 connexion // see SQLITE API at www.sqlite.org rc = sqlite3_open(Database, &Widgets.db); if(rc){ GtkError(g_strdup_printf("Error: can't open database:\t%s", sqlite3_errmsg(Widgets.db)),1); } rc = sqlite3_open(Database, &Widgets.db2); if(rc){ GtkError(g_strdup_printf("Error: can't open database:\t%s", sqlite3_errmsg(Widgets.db2)),1); } // using personal GTK functions // see include/gtk_functions.c Widgets.MainWindow = CreateGtkWindow("Simple LightWeight Mail Client", 1024, 768, 1, 1, 1); Container = PackIt(Widgets.MainWindow); gtk_container_add(GTK_CONTAINER(Widgets.MainWindow), Container); // filling the account tree up // note that SQLITE3 API uses callback functions. // find them out in include/sql_callback.c rc = sqlite3_exec(Widgets.db,"SELECT DISTINCT (smtpserver) FROM accounts", Mailboxes, 0, &zErrMsg); if( rc!=SQLITE_OK ) { GtkError(g_strdup_printf("SQL error: %s\nYou might check your database or rebuild it. see the documentation", zErrMsg),1); sqlite3_free(zErrMsg); } gtk_widget_show_all(Widgets.MainWindow); gtk_main(); return EXIT_SUCCESS; }