00001
00011 #include <stdio.h>
00012 #include <string.h>
00013 #include <glib.h>
00014 #include <stdlib.h>
00015 #include <gtk/gtk.h>
00016 #include <gtk/gtksignal.h>
00017 #include <gtk/gtktable.h>
00018 #include <gtk/gtktogglebutton.h>
00019 #include "connect.h"
00020 #include<mysql/mysql.h>
00021 #include<string.h>
00022
00023 MYSQL *connection1;
00024 MYSQL_RES *result;
00025 MYSQL_ROW sqlrow;
00026
00027 #define BUFFER 4096
00028 #define MAX_FORMAT_SIZE 100
00029
00030 GtkWidget *view;
00031 GtkWidget *view1;
00032 GtkWidget *view2;
00033 GtkWidget *viewQuest;
00034 GtkWidget *viewQuest1;
00035 GtkWidget *viewStudent;
00036 GtkWidget *buttonSubmit;
00037 GtkTextBuffer *buffer;
00038 GtkTextBuffer *buffer1;
00039 GtkTextBuffer *buffer2;
00040 GtkTextBuffer *buffer3;
00041 GtkTextIter iter;
00042 GtkToggleButton *button;
00043 GtkWidget *window1;
00044 GtkWidget *window2;
00045 GtkWidget *window3;
00046 GtkWidget *parent_window;
00047 GtkEntry *name_entry;
00048 GtkEntry *name_entry1;
00049 GtkEntry *assig_no;
00050 GtkEntry *assig_no1;
00051 GtkEntry *assig_no2;
00052 GtkEntry *quest_no;
00053 GtkEntry *username_entry, *password_entry, *email_entry, *rollNo_entry;
00054 GtkEntry *username_entry1, *password_entry1, *email_entry1, *rollNo_entry1;
00055 GtkWidget *label_D;
00056
00063 gint close_application( GtkWidget *widget,gpointer data )
00064 {
00065 gtk_main_quit();
00066 return(FALSE);
00067 }
00068
00074 void button_Cancel(GtkWidget *widget,gpointer data)
00075 {
00076 exit(EXIT_SUCCESS);
00077 }
00084 void button_ok_login()
00085 {
00086 char sql_statement[BUFFER];
00087 int result_value;
00088
00089 const char *username =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
00090 const char *password =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)password_entry));
00091
00092
00093 connection1=mysql_init (NULL);
00094 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00095 {
00096 sprintf(sql_statement,"select name from register where email = '%s' and password = '%s'",username,password);
00097
00098 result_value = mysql_query (connection1, sql_statement);
00099
00100 if (result_value)
00101 {
00102 printf ("select failed as : %s\n", mysql_error (connection1));
00103 printf ("Password Incorrect\n");
00104
00105
00106 }
00107 else
00108 {
00109 result = mysql_use_result (connection1);
00110 if (result)
00111 {
00112 while ((sqlrow = mysql_fetch_row (result)))
00113 {
00114 display_row3 ();
00115 assignment_interface();
00116
00117 }
00118 if(strstr(username,"admin"))
00119 {
00120 if(strstr(password,"123"))
00121 admin_interface();
00122 }
00123 }
00124
00125
00126 mysql_free_result(result);
00127 }
00128 }
00129
00130 else
00131 {
00132 fprintf (stderr, "Connection failed\n");
00133 if (mysql_errno (connection1))
00134 {
00135 fprintf (stderr, "Connection error %d: %s\n",
00136 mysql_errno (connection1),
00137 mysql_error (connection1));
00138 }
00139 exit(EXIT_FAILURE);
00140 }
00141
00142 }
00145 void button_Logout()
00146 {
00147 gtk_widget_hide(window1);
00148 }
00151 void button_Back()
00152 {
00153 gtk_widget_hide(window3);
00154 }
00157 void msg_dialog1()
00158 {
00159 GtkWidget *dialog;
00160
00161 dialog = gtk_message_dialog_new (NULL,
00162 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
00163 "Answers successfully submitted to our database");
00164 gtk_dialog_run (GTK_DIALOG (dialog));
00165 gtk_widget_destroy (dialog);
00166 }
00169 void msg_dialog2()
00170 {
00171 GtkWidget *dialog;
00172
00173 dialog = gtk_message_dialog_new (NULL,
00174 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
00175 "You are now successfully registered");
00176 gtk_dialog_run (GTK_DIALOG (dialog));
00177 gtk_widget_destroy (dialog);
00178 }
00181 void msg_dialog3()
00182 {
00183 GtkWidget *dialog;
00184
00185 dialog = gtk_message_dialog_new (NULL,
00186 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
00187 "You already submitted for this assignment and couldn't resubmit it!!");
00188 gtk_dialog_run (GTK_DIALOG (dialog));
00189 gtk_widget_destroy (dialog);
00190 }
00193 void msg_dialog4()
00194 {
00195 GtkWidget *dialog;
00196
00197 dialog = gtk_message_dialog_new (NULL,
00198 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
00199 "Question successfully submitted to database. Insert next question.");
00200 gtk_dialog_run (GTK_DIALOG (dialog));
00201 gtk_widget_destroy (dialog);
00202 }
00205 void msg_dialog5()
00206 {
00207 GtkWidget *dialog;
00208
00209 dialog = gtk_message_dialog_new (NULL,
00210 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
00211 "Question successfully updated to database.");
00212 gtk_dialog_run (GTK_DIALOG (dialog));
00213 gtk_widget_destroy (dialog);
00214 }
00217 void msg_dialog6()
00218 {
00219 GtkWidget *dialog;
00220
00221 dialog = gtk_message_dialog_new (NULL,
00222 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
00223 "You already registered to this system it!!");
00224 gtk_dialog_run (GTK_DIALOG (dialog));
00225 gtk_widget_destroy (dialog);
00226 }
00233 void add_records(GtkWidget *widget, gpointer data)
00234 {
00235 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
00236 GtkTextIter i1, it;
00237 gchar *text,k;
00238 int i;
00239
00240
00241 gtk_text_buffer_get_iter_at_mark(buffer, &it, gtk_text_buffer_get_insert(buffer));
00242
00243 k = gtk_text_iter_get_line(&it);
00244 gtk_text_buffer_get_iter_at_line(buffer, &it, k);
00245 gtk_text_buffer_get_end_iter(buffer, &i1);
00246 text = gtk_text_buffer_get_text(buffer, &it, &i1, FALSE);
00247
00248 for( i=0;text[i];i++);
00249 text[i]=0;
00250
00251 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry));
00252 const char *email =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
00253
00254 char sql_statement[BUFFER];
00255
00256 int result2;
00257 connection1 = mysql_init(NULL);
00258 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00259 {
00260
00261 sprintf(sql_statement,"insert into submission (assgNo,email,answers)values('%s','%s','%s')",assgNo,email,text);
00262
00263 result2 = mysql_query (connection1, sql_statement);
00264
00265 if (result2==0)
00266 {
00267 printf ("Row inserted successfully.\n");
00268 msg_dialog1();
00269
00270
00271 }
00272 else
00273 {
00274 fprintf (stderr, "Could not insert data");
00275 msg_dialog3();
00276
00277 }
00278
00279 mysql_close (connection1);
00280 }
00281 else
00282 {
00283 fprintf (stderr, "Connection failed\n");
00284 if (mysql_errno (connection1))
00285 {
00286 fprintf (stderr, "Connection error %d: %s\n",
00287 mysql_errno (connection1),
00288 mysql_error (connection1));
00289 }
00290 }
00291 }
00298 void add_records1(GtkWidget *widget, gpointer data)
00299 {
00300 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest));
00301 GtkTextIter i1, it;
00302 gchar *text,k;
00303 int i;
00304
00305
00306 gtk_text_buffer_get_iter_at_mark(buffer, &it, gtk_text_buffer_get_insert(buffer));
00307
00308 k = gtk_text_iter_get_line(&it);
00309 gtk_text_buffer_get_iter_at_line(buffer, &it, k);
00310 gtk_text_buffer_get_end_iter(buffer, &i1);
00311 text = gtk_text_buffer_get_text(buffer, &it, &i1, FALSE);
00312
00313 for( i=0;text[i]&& text[i]=='\n';i++);
00314 text[i]=0;
00315
00316 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)assig_no));
00317 const char *questNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)quest_no));
00318
00319 char sql_statement[BUFFER];
00320
00321 int result2;
00322 connection1 = mysql_init(NULL);
00323 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00324 {
00325
00326 sprintf(sql_statement,"insert into assignmnt (assigNo,qNo,listQuestions)values('%s','%s','%s')",assgNo,questNo,text);
00327
00328 result2 = mysql_query (connection1, sql_statement);
00329
00330 if (result2==0)
00331 {
00332 printf ("Row inserted successfully.\n");
00333 msg_dialog4();
00334
00335
00336 }
00337 else
00338 {
00339 fprintf (stderr, "Could not insert data");
00340 msg_dialog3();
00341
00342 }
00343
00344 mysql_close (connection1);
00345 }
00346 else
00347 {
00348 fprintf (stderr, "Connection failed\n");
00349 if (mysql_errno (connection1))
00350 {
00351 fprintf (stderr, "Connection error %d: %s\n",
00352 mysql_errno (connection1),
00353 mysql_error (connection1));
00354 }
00355 }
00356 }
00363 void fetch_records(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00364 {
00365 char sql_statement[BUFFER];
00366 int return_value;
00367 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry));
00368
00369 connection1=mysql_init (NULL);
00370 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00371 {
00372
00373 sprintf(sql_statement, "SELECT qNo, listQuestions from assignmnt where assigNo = '%s'",assgNo);
00374 return_value = mysql_query (connection1, sql_statement);
00375
00376 if (return_value)
00377 {
00378 printf ("select failed as : %s\n", mysql_error (connection1));
00379 }
00380 else
00381 {
00382 result = mysql_use_result (connection1);
00383 if (result)
00384 {
00385 if (mysql_use_result (connection1)==0)
00386 {
00387
00388 while ((sqlrow = mysql_fetch_row (result)))
00389 display_row ();
00390 }
00391 else
00392 {
00393 printf("Data that you search not in the database");
00394
00395 }
00396 }
00397 mysql_free_result(result);
00398 }
00399 mysql_close (connection1);
00400 }
00401 else
00402 {
00403 fprintf (stderr, "Connection failed\n");
00404 if (mysql_errno (connection1))
00405 {
00406 fprintf (stderr, "Connection error %d: %s\n",
00407 mysql_errno (connection1),
00408 mysql_error (connection1));
00409 }
00410 exit(EXIT_FAILURE);
00411 }
00412
00413 }
00420 void fetch_records1(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00421 {
00422 char sql_statement[BUFFER];
00423 int return_value;
00424
00425 connection1=mysql_init (NULL);
00426 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00427 {
00428 sprintf(sql_statement, "SELECT assigNo from assignmnt");
00429 return_value = mysql_query (connection1, sql_statement);
00430 if (return_value)
00431 {
00432 printf ("select failed as : %s\n", mysql_error (connection1));
00433 }
00434 else
00435 {
00436 result = mysql_use_result (connection1);
00437 if (result)
00438 {
00439 if (mysql_use_result (connection1)==0)
00440 {
00441
00442 while ((sqlrow = mysql_fetch_row (result)))
00443 display_row1 ();
00444 }
00445 else
00446 {
00447 printf("Data that you search not in the database");
00448
00449 }
00450
00451 }
00452 mysql_free_result(result);
00453 }
00454 mysql_close (connection1);
00455 }
00456 else
00457 {
00458 fprintf (stderr, "Connection failed\n");
00459 if (mysql_errno (connection1))
00460 {
00461 fprintf (stderr, "Connection error %d: %s\n",
00462 mysql_errno (connection1),
00463 mysql_error (connection1));
00464 }
00465 exit(EXIT_FAILURE);
00466 }
00467
00468 }
00475 void fetch_records2(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00476 {
00477 char sql_statement[BUFFER];
00478 int return_value;
00479 const char *email =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
00480
00481 connection1=mysql_init (NULL);
00482 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00483 {
00484
00485 sprintf(sql_statement, "SELECT assgNo,answers from submission where email = '%s'",email);
00486 return_value = mysql_query (connection1, sql_statement);
00487
00488 if (return_value)
00489 {
00490 printf ("select failed as : %s\n", mysql_error (connection1));
00491 }
00492 else
00493 {
00494 result = mysql_use_result (connection1);
00495 if (result)
00496 {
00497 if (mysql_use_result (connection1)==0)
00498 {
00499
00500 while ((sqlrow = mysql_fetch_row (result)))
00501 display_row2 ();
00502 }
00503 else
00504 {
00505 printf("Data that you search not in the database");
00506
00507 }
00508 }
00509 mysql_free_result(result);
00510 }
00511 mysql_close (connection1);
00512 }
00513 else
00514 {
00515 fprintf (stderr, "Connection failed\n");
00516 if (mysql_errno (connection1))
00517 {
00518 fprintf (stderr, "Connection error %d: %s\n",
00519 mysql_errno (connection1),
00520 mysql_error (connection1));
00521 }
00522 exit(EXIT_FAILURE);
00523 }
00524
00525 }
00532 void fetch_records3(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00533 {
00534 char sql_statement[BUFFER];
00535 int return_value;
00536 const char *assigNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)assig_no1));
00537
00538 connection1=mysql_init (NULL);
00539 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00540 {
00541
00542 sprintf(sql_statement, "SELECT qNo, listQuestions from assignmnt where assigNo = '%s'",assigNo);
00543 return_value = mysql_query (connection1, sql_statement);
00544
00545 if (return_value)
00546 {
00547 printf ("select failed as : %s\n", mysql_error (connection1));
00548 }
00549 else
00550 {
00551 result = mysql_use_result (connection1);
00552 if (result)
00553 {
00554 if (mysql_use_result (connection1)==0)
00555 {
00556
00557 while ((sqlrow = mysql_fetch_row (result)))
00558 display_row4 ();
00559 }
00560 else
00561 {
00562 printf("Data that you search not in the database");
00563
00564 }
00565
00566 }
00567 mysql_free_result(result);
00568 }
00569 mysql_close (connection1);
00570 }
00571 else
00572 {
00573 fprintf (stderr, "Connection failed\n");
00574 if (mysql_errno (connection1))
00575 {
00576 fprintf (stderr, "Connection error %d: %s\n",
00577 mysql_errno (connection1),
00578 mysql_error (connection1));
00579 }
00580 exit(EXIT_FAILURE);
00581 }
00582
00583 }
00591 void fetch_records4(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00592 {
00593 char sql_statement[BUFFER];
00594 int return_value;
00595 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)assig_no2));
00596
00597 connection1=mysql_init (NULL);
00598 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00599 {
00600
00601 sprintf(sql_statement, "SELECT email from submission where assgNo = '%s'",assgNo);
00602 return_value = mysql_query (connection1, sql_statement);
00603
00604 if (return_value)
00605 {
00606 printf ("select failed as : %s\n", mysql_error (connection1));
00607 }
00608 else
00609 {
00610 result = mysql_use_result (connection1);
00611 if (result)
00612 {
00613 if (mysql_use_result (connection1)==0)
00614 {
00615
00616 while ((sqlrow = mysql_fetch_row (result)))
00617 display_row5 ();
00618 }
00619 else
00620 {
00621 printf("Data that you search not in the database");
00622
00623 }
00624 }
00625 mysql_free_result(result);
00626 }
00627 mysql_close (connection1);
00628 }
00629 else
00630 {
00631 fprintf (stderr, "Connection failed\n");
00632 if (mysql_errno (connection1))
00633 {
00634 fprintf (stderr, "Connection error %d: %s\n",
00635 mysql_errno (connection1),
00636 mysql_error (connection1));
00637 }
00638 exit(EXIT_FAILURE);
00639 }
00640
00641 }
00649 void fetch_records5(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00650 {
00651 char sql_statement[BUFFER];
00652 int return_value;
00653 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)assig_no2));
00654
00655 connection1=mysql_init (NULL);
00656 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00657 {
00658
00659 sprintf(sql_statement, "SELECT email from submissionFile where assgNo = '%s'",assgNo);
00660 return_value = mysql_query (connection1, sql_statement);
00661
00662 if (return_value)
00663 {
00664 printf ("select failed as : %s\n", mysql_error (connection1));
00665 }
00666 else
00667 {
00668 result = mysql_use_result (connection1);
00669 if (result)
00670 {
00671 if (mysql_use_result (connection1)==0)
00672 {
00673
00674 while ((sqlrow = mysql_fetch_row (result)))
00675 display_row5 ();
00676 }
00677 else
00678 {
00679 printf("Data that you search not in the database");
00680
00681 }
00682 }
00683 mysql_free_result(result);
00684 }
00685 mysql_close (connection1);
00686 }
00687 else
00688 {
00689 fprintf (stderr, "Connection failed\n");
00690 if (mysql_errno (connection1))
00691 {
00692 fprintf (stderr, "Connection error %d: %s\n",
00693 mysql_errno (connection1),
00694 mysql_error (connection1));
00695 }
00696 exit(EXIT_FAILURE);
00697 }
00698
00699 }
00706 void fetch_records6(GtkWidget *widget, GdkEventKey *event, GtkWidget *label1)
00707 {
00708 char sql_statement[BUFFER];
00709 int return_value;
00710 const char *email =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
00711
00712 connection1=mysql_init (NULL);
00713 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00714 {
00715
00716 sprintf(sql_statement, "SELECT assgNo,filename from submissionFile where email = '%s'",email);
00717 return_value = mysql_query (connection1, sql_statement);
00718
00719 if (return_value)
00720 {
00721 printf ("select failed as : %s\n", mysql_error (connection1));
00722 }
00723 else
00724 {
00725 result = mysql_use_result (connection1);
00726 if (result)
00727 {
00728 if (mysql_use_result (connection1)==0)
00729 {
00730
00731 while ((sqlrow = mysql_fetch_row (result)))
00732 display_row2 ();
00733 }
00734 else
00735 {
00736 printf("Data that you search not in the database");
00737
00738 }
00739 }
00740 mysql_free_result(result);
00741 }
00742 mysql_close (connection1);
00743 }
00744 else
00745 {
00746 fprintf (stderr, "Connection failed\n");
00747 if (mysql_errno (connection1))
00748 {
00749 fprintf (stderr, "Connection error %d: %s\n",
00750 mysql_errno (connection1),
00751 mysql_error (connection1));
00752 }
00753 exit(EXIT_FAILURE);
00754 }
00755
00756 }
00761 void modify_records()
00762 {
00763 char sql_statement[BUFFER];
00764 int return_value;
00765 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest1));
00766 GtkTextIter i1, it;
00767 gchar *text,k;
00768 int i;
00769
00770 gtk_text_buffer_get_iter_at_mark(buffer, &it, gtk_text_buffer_get_insert(buffer));
00771
00772 k = gtk_text_iter_get_line(&it);
00773 gtk_text_buffer_get_iter_at_line(buffer, &it, k);
00774 gtk_text_buffer_get_end_iter(buffer, &i1);
00775 text = gtk_text_buffer_get_text(buffer, &it, &i1, FALSE);
00776
00777 for( i=0;text[i];i++);
00778 text[i]=0;
00779
00780 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)assig_no1));
00781
00782 connection1=mysql_init(NULL);
00783 if(mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
00784 {
00785 printf ("Connection success\n");
00786
00787 sprintf(sql_statement, "update assignmnt set listQuestions='%s' where assigNo='%s'",text,assgNo);
00788 return_value = mysql_query(connection1,sql_statement);
00789 if (!return_value)
00790 {
00791 printf ("Updated %lu rows\n", (unsigned long) mysql_affected_rows (connection1));
00792 if (mysql_affected_rows (connection1)==0)
00793 {
00794 printf("No updated data");
00795 }
00796 else
00797 {
00798 printf("Successful updated data");
00799 msg_dialog5();
00800 }
00801 }
00802 else
00803 {
00804 fprintf (stderr, "Update failed as %d: %s\n", mysql_errno (connection1), mysql_error (connection1));
00805 }
00806
00807 mysql_close (connection1);
00808 }
00809 else
00810 {
00811 fprintf (stderr, "Connection failed\n");
00812 if (mysql_errno (connection1))
00813 {
00814 fprintf (stderr, "Connection error %d: %s\n", mysql_errno (connection1), mysql_error (connection1));
00815 }
00816 }
00817
00818 }
00822 void display_row ()
00823 {
00824 unsigned int field_count;
00825
00826 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view1));
00827
00828 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00829
00830 field_count = 0;
00831
00832 while (field_count < mysql_field_count (connection1))
00833 {
00834
00835 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00836 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00837
00838 field_count++;
00839 }
00840 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00841
00842 }
00846 void display_row1 ()
00847 {
00848 unsigned int field_count;
00849
00850 char display_message[100];
00851
00852 field_count = 0;
00853
00854 while (field_count < mysql_field_count (connection1))
00855 {
00856 sprintf(display_message, "%s ", sqlrow[field_count]);
00857 field_count++;
00858 }
00859
00860 gtk_entry_set_text(GTK_ENTRY(name_entry), display_message);
00861
00862 }
00866 void display_row2 ()
00867 {
00868 unsigned int field_count;
00869
00870 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest));
00871
00872 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00873
00874 field_count = 0;
00875
00876 while (field_count < mysql_field_count (connection1))
00877 {
00878 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00879 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00880 field_count++;
00881 }
00882 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00883
00884 }
00888 void display_row3 ()
00889 {
00890 unsigned int field_count;
00891 char display_message[100];
00892
00893 field_count = 0;
00894
00895 while (field_count < mysql_field_count (connection1))
00896 {
00897 sprintf(display_message, "Welcome %s ", sqlrow[field_count]);
00898 field_count++;
00899 }
00900
00901 }
00905 void display_row4 ()
00906 {
00907 unsigned int field_count;
00908
00909 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest1));
00910
00911 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00912
00913 field_count = 0;
00914
00915 while (field_count < mysql_field_count (connection1))
00916 {
00917 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00918 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00919
00920
00921 field_count++;
00922 }
00923 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00924
00925 }
00929 void display_row5 ()
00930 {
00931 unsigned int field_count;
00932
00933 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewStudent));
00934
00935 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00936
00937 field_count = 0;
00938
00939 while (field_count < mysql_field_count (connection1))
00940 {
00941 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00942 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00943
00944 field_count++;
00945 }
00946 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00947
00948 }
00952 void clear()
00953 {
00954 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view2));
00955 gtk_text_buffer_set_text (buffer, " ", -1);
00956
00957 buffer1=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view1));
00958 gtk_text_buffer_set_text (buffer1, " ", -1);
00959
00960 buffer2=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
00961 gtk_text_buffer_set_text (buffer2, " ", -1);
00962
00963 buffer3=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest));
00964 gtk_text_buffer_set_text (buffer3, " ", -1);
00965
00966 gtk_entry_set_text(GTK_ENTRY(quest_no), " ");
00967 }
00971 void clear1()
00972 {
00973 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest1));
00974 gtk_text_buffer_set_text (buffer, " ", -1);
00975
00976 gtk_entry_set_text(GTK_ENTRY(assig_no1), " ");
00977 }
00981 void clear2()
00982 {
00983 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewStudent));
00984 gtk_text_buffer_set_text (buffer, " ", -1);
00985
00986 gtk_entry_set_text(GTK_ENTRY(assig_no2), " ");
00987 }
00991 void editable()
00992 {
00993 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), TRUE);
00994 }
00998 void editable1()
00999 {
01000 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), FALSE);
01001 }
01005 void editable3()
01006 {
01007 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest1), TRUE);
01008
01009 }
01014 void signup(GtkWidget *widget, gpointer data)
01015 {
01016 register_interface();
01017 }
01022 void viewAnswer(GtkWidget *widget, gpointer data)
01023 {
01024 viewAnswers_interface();
01025 }
01033 void button_ok_register(GtkWidget *widget, gpointer data)
01034 {
01035 char sql_statement[BUFFER];
01036 int result;
01037
01038 const char *username =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry1));
01039 const char *password =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)password_entry1));
01040 const char *email_text =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)email_entry1));
01041 const char *rollNo_text =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)rollNo_entry1));
01042
01043 connection1 = mysql_init(NULL);
01044 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
01045 {
01046 sprintf(sql_statement,"insert into register (name,rollNo,password,email)values('%s','%s','%s','%s')",username,rollNo_text,password,email_text);
01047 result = mysql_query (connection1, sql_statement);
01048
01049 if (result==0)
01050 {
01051 printf ("Row inserted successfully.\n");
01052 msg_dialog2();
01053 }
01054 else
01055 {
01056 fprintf (stderr, "Could not insert data as %d: %s\n",
01057 mysql_errno (connection1),
01058 mysql_error (connection1));
01059 msg_dialog6();
01060
01061 }
01062 mysql_close (connection1);
01063 }
01064 else
01065 {
01066 fprintf (stderr, "Connection failed\n");
01067 if (mysql_errno (connection1))
01068 {
01069 fprintf (stderr, "Connection error %d: %s\n",
01070 mysql_errno (connection1),
01071 mysql_error (connection1));
01072 }
01073 }
01074 }
01080 void button_cancel_register(GtkWidget *widget, gpointer data)
01081 {
01082 gtk_widget_hide(window2);
01083 }
01086 void msg_dialog()
01087 {
01088 GtkWidget *dialog;
01089
01090 dialog = gtk_message_dialog_new (NULL,
01091 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
01092 "Answers successfully saved to the external file");
01093 gtk_dialog_run (GTK_DIALOG (dialog));
01094 gtk_widget_destroy (dialog);
01095
01096 }
01101 void save()
01102 {
01103 FILE *sample_file;
01104 char filename[100]="students_answers.txt";
01105
01106 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
01107 GtkTextIter i1, it;
01108 gchar *text,k;
01109 int i;
01110
01111 sample_file=fopen(filename, "w");
01112 if(sample_file==NULL)
01113 {
01114 fprintf(stderr, "Cant open file '%s' for writing\n", filename);
01115 perror("");
01116 exit(EXIT_FAILURE);
01117 }
01118
01119 gtk_text_buffer_get_iter_at_mark(buffer, &it, gtk_text_buffer_get_insert(buffer));
01120
01121 k = gtk_text_iter_get_line(&it);
01122 gtk_text_buffer_get_iter_at_line(buffer, &it, k);
01123 gtk_text_buffer_get_end_iter(buffer, &i1);
01124 text = gtk_text_buffer_get_text(buffer, &it, &i1, FALSE);
01125
01126 for( i=0;text[i] && text[i]!='\n';i++);
01127 text[i]=0;
01128
01129 fprintf(sample_file, "%s", text);
01130 msg_dialog();
01131 }
01136 void browse()
01137 {
01138 GtkWidget *dialog;
01139 char *filename;
01140 parent_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01141 dialog = gtk_file_chooser_dialog_new ("Browse File",
01142 parent_window,
01143 GTK_FILE_CHOOSER_ACTION_OPEN,
01144 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
01145 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
01146 NULL);
01147 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
01148 {
01149 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
01150 gtk_entry_set_text(GTK_ENTRY(name_entry1), filename);
01151 g_free (filename);
01152 }
01153 gtk_widget_destroy (dialog);
01154
01155 }
01160 void upload()
01161 {
01162 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry));
01163 const char *name =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
01164 const char *filename =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry1));
01165
01166 char sql_statement[BUFFER];
01167
01168 int result2;
01169 connection1 = mysql_init(NULL);
01170 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
01171 {
01172
01173 sprintf(sql_statement,"insert into submissionFile (assgNo,email,filename)values('%s','%s','%s')",assgNo,name,filename);
01174
01175 result2 = mysql_query (connection1, sql_statement);
01176
01177 if (result2==0)
01178 {
01179 printf ("Row inserted successfully.\n");
01180 msg_dialog1();
01181
01182
01183 }
01184 else
01185 {
01186 fprintf (stderr, "Could not insert data");
01187 msg_dialog3();
01188
01189 }
01190
01191 mysql_close (connection1);
01192 }
01193 else
01194 {
01195 fprintf (stderr, "Connection failed\n");
01196 if (mysql_errno (connection1))
01197 {
01198 fprintf (stderr, "Connection error %d: %s\n",
01199 mysql_errno (connection1),
01200 mysql_error (connection1));
01201 }
01202 }
01203 }
01209 void help_interface(int argc, char *argv[])
01210 {
01211 GtkWidget *box_A;
01212 GtkWidget *label_help;
01213 GtkWidget *label_hi;
01214 GtkWidget *buttonClose;
01215 GtkWidget *fixed;
01216
01217 gtk_init (&argc, &argv);
01218
01219 window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01220
01221 gtk_window_set_title (GTK_WINDOW (window3), "Aspect Frame");
01222
01223 g_signal_connect (G_OBJECT (window3), "destroy",G_CALLBACK (exit), NULL);
01224
01225 gtk_window_set_title (GTK_WINDOW (window3), "Software Technology Assignment Submission System");
01226 gtk_container_set_border_width (GTK_CONTAINER (window3), 10);
01227 gtk_window_set_default_size(GTK_WINDOW(window1),600,1000);
01228
01229 box_A = gtk_vbox_new (FALSE, 2);
01230 gtk_container_set_border_width (GTK_CONTAINER (box_A), 2);
01231 gtk_container_add (GTK_CONTAINER (window3), box_A);
01232 gtk_widget_show (box_A);
01233
01234 fixed = gtk_fixed_new();
01235 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01236
01237 label_help = gtk_label_new ("How to use this system:");
01238 gtk_fixed_put(GTK_FIXED(fixed), label_help , 2, 2);
01239 gtk_widget_set_size_request(label_help , 200, 30);
01240
01241
01242 label_help = gtk_label_new ("**You can view current assignment number and the questions \nrelated to this assignment by click the 'Current assignment' \nbutton and 'View current questions for this assignment' button.\nYou can type your answers on the text view that have \nbeen provided to you in this page and you can submit your answers to the \ndatabase by clicking the 'Submit' button and you also can save your \nanswers to the external file as backup answer\n(in case if your answers fail to be submitted to the database) \nby clicking the 'Save' button. You also can upload any files if \nneeded by clicking the 'Browse' and 'Upload' button. \nFor the same assignment, \nyou can submit your answers once only, which means a student \ncannot submitted the assignment more than once. \nYou are allow to view your previous assignment's answers \nby clicking the 'Previous answer' button. If you want to logout \nfrom the system choose the 'Logout' button.**");
01243 gtk_fixed_put(GTK_FIXED(fixed), label_help , 10, 10);
01244 gtk_widget_set_size_request(label_help , 500, 300);
01245
01246 buttonClose = gtk_button_new_with_label("Close");
01247 gtk_fixed_put(GTK_FIXED(fixed), buttonClose, 50, 300);
01248 gtk_widget_set_size_request(buttonClose, 250, 30);
01249
01250 g_signal_connect(G_OBJECT(buttonClose), "clicked", G_CALLBACK(button_Back),NULL);
01251
01252 gtk_widget_show_all(fixed);
01253
01254 gtk_widget_show (window3);
01255
01256 gtk_main();
01257 }
01262 void viewAnswers_interface(int argc, char *argv[])
01263 {
01264 GtkWidget *box_A;
01265 GtkWidget *buttonView;
01266 GtkWidget *buttonBack;
01267 GtkWidget *fixed;
01268
01269 gtk_init (&argc, &argv);
01270
01271 window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01272
01273 gtk_window_set_title (GTK_WINDOW (window3), "Aspect Frame");
01274
01275 g_signal_connect (G_OBJECT (window3), "destroy",G_CALLBACK (exit), NULL);
01276
01277 gtk_window_set_title (GTK_WINDOW (window3), "Software Technology Assignment Submission System");
01278 gtk_container_set_border_width (GTK_CONTAINER (window3), 10);
01279 gtk_window_set_default_size(GTK_WINDOW(window1),400,400);
01280
01281 box_A = gtk_vbox_new (FALSE, 5);
01282 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01283 gtk_container_add (GTK_CONTAINER (window3), box_A);
01284 gtk_widget_show (box_A);
01285
01286 fixed = gtk_fixed_new();
01287 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01288
01289 buttonView = gtk_button_new_with_label("View your answers");
01290 gtk_fixed_put(GTK_FIXED(fixed), buttonView, 50, 30);
01291 gtk_widget_set_size_request(buttonView, 250, 30);
01292
01293 viewQuest = gtk_text_view_new();
01294 gtk_fixed_put(GTK_FIXED(fixed), viewQuest , 10, 100);
01295 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest ), TRUE);
01296 gtk_widget_set_size_request( viewQuest , 400, 160);
01297
01298 buttonBack = gtk_button_new_with_label("Back to Main Page");
01299 gtk_fixed_put(GTK_FIXED(fixed), buttonBack, 50, 300);
01300 gtk_widget_set_size_request(buttonBack, 250, 30);
01301
01302 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records2),NULL);
01303 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records6),NULL);
01304 g_signal_connect(G_OBJECT(buttonBack), "clicked", G_CALLBACK(button_Back),NULL);
01305
01306 gtk_widget_show_all(fixed);
01307
01308 gtk_widget_show (window3);
01309
01310 gtk_main();
01311 }
01318 void admin_interface(int argc, char *argv[])
01319 {
01320 GtkWidget *box_A;
01321 GtkWidget *label_A;
01322 GtkWidget *label_A1;
01323 GtkWidget *label_B;
01324 GtkWidget *label_create;
01325 GtkWidget *label_list;
01326 GtkWidget *fixed;
01327 GtkWidget *label_C;
01328 GtkWidget *label_edit;
01329 GtkWidget *buttonDisplay;
01330 GtkWidget *buttonLogout;
01331 GtkWidget *buttonHistory1;
01332 GtkWidget *buttonSubmit;
01333 GtkWidget *buttonSave1;
01334 GtkWidget *buttonEdit;
01335 GtkWidget *buttonClear;
01336 GtkWidget *buttonClear1;
01337
01338 gtk_init (&argc, &argv);
01339
01340 window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01341
01342 gtk_window_set_title (GTK_WINDOW (window1), "Aspect Frame");
01343
01344 g_signal_connect (G_OBJECT (window1), "destroy",G_CALLBACK (exit), NULL);
01345
01346 gtk_window_set_title (GTK_WINDOW (window1), "Software Technology Assignment Submission System");
01347 gtk_container_set_border_width (GTK_CONTAINER (window1), 10);
01348 gtk_window_set_default_size(GTK_WINDOW(window1),700,200);
01349
01350 box_A = gtk_vbox_new (FALSE, 5);
01351 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01352 gtk_container_add (GTK_CONTAINER (window1), box_A);
01353 gtk_widget_show (box_A);
01354
01355 label_D = gtk_label_new ("WELCOME TO ADMIN PAGE");
01356 gtk_box_pack_start (GTK_BOX (box_A), label_D, FALSE, TRUE, 0);
01357 gtk_widget_grab_focus(label_D);
01358 gtk_widget_show (label_D);
01359
01360
01361 fixed = gtk_fixed_new();
01362 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01363
01364 buttonHistory1 = gtk_button_new_with_label("View assignments and questions");
01365 gtk_fixed_put(GTK_FIXED( fixed), buttonHistory1, 600, 95);
01366 gtk_widget_set_size_request(buttonHistory1, 250, 30);
01367
01368 buttonDisplay = gtk_button_new_with_label("Display List of Students");
01369 gtk_fixed_put(GTK_FIXED(fixed), buttonDisplay, 450, 390);
01370 gtk_widget_set_size_request(buttonDisplay, 200, 30);
01371
01372 buttonClear1 = gtk_button_new_with_label("Clear");
01373 gtk_fixed_put(GTK_FIXED(fixed), buttonClear1, 470, 430);
01374 gtk_widget_set_size_request(buttonClear1, 80, 35);
01375
01376 buttonLogout = gtk_button_new_with_label("Logout");
01377 gtk_fixed_put(GTK_FIXED(fixed), buttonLogout, 730, 2);
01378 gtk_widget_set_size_request(buttonLogout, 80, 30);
01379
01380 label_create = gtk_label_new ("Create assignment and question here :");
01381 gtk_fixed_put(GTK_FIXED(fixed), label_create, 2, 100);
01382
01383 label_A = gtk_label_new ("Assignment No :");
01384 gtk_fixed_put(GTK_FIXED(fixed), label_A, 2, 130);
01385
01386 assig_no= gtk_entry_new_with_max_length (100);
01387 gtk_fixed_put(GTK_FIXED(fixed), assig_no, 120, 125);
01388 gtk_entry_set_editable(GTK_ENTRY (assig_no), TRUE);
01389 gtk_widget_set_size_request(assig_no, 25, 30);
01390
01391 label_B = gtk_label_new ("Question No :");
01392 gtk_fixed_put(GTK_FIXED(fixed), label_B, 2, 160);
01393
01394 quest_no=gtk_entry_new_with_max_length (100);
01395 gtk_fixed_put(GTK_FIXED(fixed), quest_no, 120, 160);
01396 gtk_entry_set_editable(GTK_ENTRY (quest_no), TRUE);
01397 gtk_widget_set_size_request(quest_no, 25, 30);
01398
01399 viewQuest = gtk_text_view_new();
01400 gtk_fixed_put(GTK_FIXED(fixed), viewQuest , 2, 200);
01401 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest ), TRUE);
01402 gtk_widget_set_size_request( viewQuest , 300, 100);
01403
01404 label_edit = gtk_label_new ("View and edit questions here :");
01405 gtk_fixed_put(GTK_FIXED(fixed), label_edit, 450, 70);
01406
01407 label_A1 = gtk_label_new ("Assignment No :");
01408 gtk_fixed_put(GTK_FIXED(fixed), label_A1, 450, 100);
01409
01410 assig_no1= gtk_entry_new_with_max_length (100);
01411 gtk_fixed_put(GTK_FIXED(fixed), assig_no1, 560, 95);
01412 gtk_entry_set_editable(GTK_ENTRY (assig_no1), TRUE);
01413 gtk_widget_set_size_request(assig_no1, 25, 30);
01414
01415 label_list = gtk_label_new ("List of questions :");
01416 gtk_fixed_put(GTK_FIXED(fixed), label_list, 450, 130);
01417
01418 viewQuest1 = gtk_text_view_new();
01419 gtk_fixed_put(GTK_FIXED(fixed), viewQuest1 , 450, 150);
01420 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest1 ), FALSE);
01421 gtk_widget_set_size_request( viewQuest1 , 450, 150);
01422
01423 buttonSubmit = gtk_button_new_with_label("Submit");
01424 gtk_fixed_put(GTK_FIXED(fixed), buttonSubmit, 10, 320);
01425 gtk_widget_set_size_request(buttonSubmit, 80, 35);
01426
01427 buttonEdit = gtk_button_new_with_label("Edit");
01428 gtk_fixed_put(GTK_FIXED(fixed), buttonEdit, 450, 320);
01429 gtk_widget_set_size_request(buttonEdit, 80, 35);
01430
01431 buttonSave1 = gtk_button_new_with_label("Save");
01432 gtk_fixed_put(GTK_FIXED(fixed), buttonSave1, 540, 320);
01433 gtk_widget_set_size_request(buttonSave1, 80, 35);
01434
01435 buttonClear = gtk_button_new_with_label("Clear");
01436 gtk_fixed_put(GTK_FIXED(fixed), buttonClear, 630, 320);
01437 gtk_widget_set_size_request(buttonClear, 80, 35);
01438
01439 label_C = gtk_label_new ("List of Students that have submitted the assignment number:");
01440 gtk_fixed_put(GTK_FIXED(fixed), label_C, 2, 400);
01441
01442 assig_no2= gtk_entry_new_with_max_length (100);
01443 gtk_fixed_put(GTK_FIXED(fixed), assig_no2, 410, 390);
01444 gtk_entry_set_editable(GTK_ENTRY (assig_no2), TRUE);
01445 gtk_widget_set_size_request(assig_no2, 25, 30);
01446
01447 viewStudent = gtk_text_view_new();
01448 gtk_fixed_put(GTK_FIXED(fixed), viewStudent, 2, 420);
01449 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewStudent ), FALSE);
01450 gtk_widget_set_size_request( viewStudent , 450, 200);
01451
01452 gtk_widget_show_all(fixed);
01453
01454 g_signal_connect(G_OBJECT(buttonHistory1), "clicked", G_CALLBACK(fetch_records3),NULL);
01455
01456 g_signal_connect(G_OBJECT(buttonDisplay), "clicked", G_CALLBACK(fetch_records4),NULL);
01457 g_signal_connect(G_OBJECT(buttonDisplay), "clicked", G_CALLBACK(fetch_records5),NULL);
01458
01459 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(add_records1),NULL);
01460 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(clear),NULL);
01461
01462 g_signal_connect(G_OBJECT(buttonSave1), "clicked", G_CALLBACK(modify_records),NULL);
01463 g_signal_connect(G_OBJECT(buttonEdit), "clicked", G_CALLBACK(editable3),NULL);
01464
01465 g_signal_connect(G_OBJECT(buttonClear), "clicked", G_CALLBACK(clear1),NULL);
01466 g_signal_connect(G_OBJECT(buttonClear1), "clicked", G_CALLBACK(clear2),NULL);
01467
01468 g_signal_connect(G_OBJECT(buttonLogout), "clicked", button_Logout, NULL);
01469
01470 gtk_widget_show (window1);
01471
01472 gtk_main();
01473
01474 return EXIT_SUCCESS;
01475
01476 }
01483 void assignment_interface(int argc, char *argv[])
01484 {
01485
01486 GtkWidget *box_A;
01487 GtkWidget *box_B;
01488 GtkWidget *box_C;
01489 GtkWidget *label_A;
01490 GtkWidget *separator;
01491 GtkWidget *fixed;
01492 GtkWidget *label_C;
01493 GtkWidget *buttonView;
01494 GtkWidget *buttonView1;
01495 GtkWidget *buttonHelp;
01496 GtkWidget *buttonLogout;
01497 GtkWidget *fixed_A;
01498 GtkWidget *buttonHistory;
01499 GtkWidget *label_D;
01500 GtkWidget *buttonSubmit;
01501 GtkWidget *buttonSave;
01502 GtkWidget *buttonBrowse;
01503 GtkWidget *buttonUpload;
01504
01505 gtk_init (&argc, &argv);
01506
01507 window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01508
01509 gtk_window_set_title (GTK_WINDOW (window1), "Aspect Frame");
01510
01511 g_signal_connect (G_OBJECT (window1), "destroy",G_CALLBACK (exit), NULL);
01512
01513 gtk_window_set_title (GTK_WINDOW (window1), "Software Technology Assignment Submission System");
01514 gtk_container_set_border_width (GTK_CONTAINER (window1), 10);
01515 gtk_window_set_default_size(GTK_WINDOW(window1),3000,200);
01516
01517 box_A = gtk_vbox_new (FALSE, 5);
01518 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01519 gtk_container_add (GTK_CONTAINER (window1), box_A);
01520 gtk_widget_show (box_A);
01521
01522 label_D = gtk_label_new ("WELCOME");
01523 gtk_box_pack_start (GTK_BOX (box_A), label_D, FALSE, TRUE, 0);
01524 gtk_widget_grab_focus(label_D);
01525 gtk_widget_show (label_D);
01526
01527 fixed = gtk_fixed_new();
01528 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01529
01530 buttonView = gtk_button_new_with_label("Current assignment");
01531 gtk_fixed_put(GTK_FIXED(fixed), buttonView, 2, 50);
01532 gtk_widget_set_size_request(buttonView, 200, 30);
01533
01534 buttonHistory = gtk_button_new_with_label("Previous answers");
01535 gtk_fixed_put(GTK_FIXED( fixed), buttonHistory, 300, 50);
01536 gtk_widget_set_size_request(buttonHistory, 250, 30);
01537
01538 buttonHelp = gtk_button_new_with_label("Help");
01539 gtk_fixed_put(GTK_FIXED(fixed), buttonHelp, 630, 50);
01540 gtk_widget_set_size_request(buttonHelp, 60, 30);
01541
01542 buttonLogout = gtk_button_new_with_label("Logout");
01543 gtk_fixed_put(GTK_FIXED(fixed), buttonLogout, 750, 50);
01544 gtk_widget_set_size_request(buttonLogout, 80, 30);
01545
01546 label_A = gtk_label_new ("Assignment No :");
01547 gtk_fixed_put(GTK_FIXED(fixed), label_A, 2, 100);
01548
01549 name_entry= gtk_entry_new_with_max_length (100);
01550 gtk_fixed_put(GTK_FIXED(fixed), name_entry, 120, 95);
01551 gtk_entry_set_editable(GTK_ENTRY (name_entry), TRUE);
01552 gtk_widget_set_size_request(name_entry, 30, 30);
01553
01554 buttonView1 = gtk_button_new_with_label("View current questions for this assignment");
01555 gtk_fixed_put(GTK_FIXED(fixed), buttonView1, 2, 140);
01556 gtk_widget_set_size_request(buttonView1, 320, 30);
01557
01558 gtk_widget_show_all(fixed);
01559
01560 label_A = gtk_label_new ("Answer all the questions below :");
01561 gtk_box_pack_start (GTK_BOX (box_A), label_A, FALSE, FALSE, 0);
01562 gtk_widget_grab_focus(label_A);
01563 gtk_widget_show (label_A);
01564
01565 view1 = gtk_text_view_new();
01566 gtk_box_pack_start(GTK_BOX(box_A), view1, FALSE, FALSE, 0);
01567 gtk_text_view_set_editable(GTK_TEXT_VIEW (view1), FALSE);
01568 gtk_widget_set_size_request( view1, 300, 150);
01569 GTK_WIDGET_SET_FLAGS ( view1, GTK_CAN_DEFAULT);
01570 gtk_widget_grab_focus( view1);
01571 gtk_widget_show ( view1);
01572
01573 box_B = gtk_vbox_new (FALSE, 5);
01574 gtk_container_set_border_width (GTK_CONTAINER (box_B), 5);
01575 gtk_box_pack_start (GTK_BOX (box_A), box_B, FALSE, TRUE, 0);
01576 gtk_widget_show (box_B);
01577
01578 separator = gtk_hseparator_new ();
01579 gtk_box_pack_start (GTK_BOX (box_A), separator, FALSE, TRUE, 0);
01580 gtk_widget_show (separator);
01581
01582 separator = gtk_hseparator_new ();
01583 gtk_box_pack_start (GTK_BOX (box_B), separator, FALSE, TRUE, 0);
01584 gtk_widget_show (separator);
01585
01586 label_C = gtk_label_new ("Answer here :");
01587 gtk_box_pack_start (GTK_BOX (box_B), label_C, FALSE, FALSE, 0);
01588 gtk_widget_grab_focus(label_C);
01589 gtk_widget_show (label_C);
01590
01591 view = gtk_text_view_new();
01592 gtk_box_pack_start(GTK_BOX(box_B), view, FALSE, FALSE, 0);
01593 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), TRUE);
01594 gtk_widget_set_size_request( view, 300, 170);
01595 GTK_WIDGET_SET_FLAGS ( view, GTK_CAN_DEFAULT);
01596 gtk_widget_grab_focus( view);
01597 gtk_widget_show ( view);
01598
01599 box_C = gtk_vbox_new (FALSE, 5);
01600 gtk_container_set_border_width (GTK_CONTAINER (box_C), 5);
01601 gtk_box_pack_start (GTK_BOX (box_B), box_C, FALSE, TRUE, 0);
01602 gtk_widget_show (box_C);
01603
01604 fixed_A = gtk_fixed_new();
01605 gtk_box_pack_start (GTK_BOX (box_C), fixed_A, FALSE, FALSE, 0);
01606
01607 buttonSave = gtk_button_new_with_label("Save");
01608 gtk_fixed_put(GTK_FIXED(fixed_A), buttonSave, 300, 30);
01609 gtk_widget_set_size_request(buttonSave, 60, 35);
01610
01611 buttonSubmit = gtk_button_new_with_label("Submit");
01612 gtk_fixed_put(GTK_FIXED(fixed_A), buttonSubmit, 400, 30);
01613 gtk_widget_set_size_request(buttonSubmit, 80, 35);
01614 gtk_widget_show_all (fixed_A);
01615
01616 name_entry1 = gtk_entry_new_with_max_length (100);
01617 gtk_fixed_put(GTK_FIXED(fixed_A), name_entry1, 500, 30);
01618 gtk_entry_set_editable(GTK_ENTRY (name_entry1), TRUE);
01619 gtk_widget_set_size_request(name_entry1, 200, 35);
01620
01621 buttonBrowse = gtk_button_new_with_label("Browse File");
01622 gtk_fixed_put(GTK_FIXED(fixed_A), buttonBrowse, 700, 30);
01623 gtk_widget_set_size_request(buttonBrowse, 100, 35);
01624 gtk_widget_show_all (fixed_A);
01625
01626 buttonUpload = gtk_button_new_with_label("Upload File");
01627 gtk_fixed_put(GTK_FIXED(fixed_A), buttonUpload, 800, 30);
01628 gtk_widget_set_size_request(buttonUpload, 100, 35);
01629 gtk_widget_show_all (fixed_A);
01630
01631 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(clear),NULL);
01632
01633 g_signal_connect(G_OBJECT(buttonView1), "clicked", G_CALLBACK(fetch_records),NULL);
01634 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records1),NULL);
01635
01636 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(editable),NULL);
01637
01638 g_signal_connect(G_OBJECT(buttonHistory), "clicked", G_CALLBACK(viewAnswer),NULL);
01639
01640 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(add_records),NULL);
01641
01642 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(editable1),NULL);
01643
01644 g_signal_connect(G_OBJECT(buttonSave), "clicked", G_CALLBACK(save),NULL);
01645
01646 g_signal_connect(G_OBJECT(buttonBrowse), "clicked", G_CALLBACK(browse),NULL);
01647 g_signal_connect(G_OBJECT(buttonUpload), "clicked", G_CALLBACK(upload),NULL);
01648
01649 g_signal_connect(G_OBJECT(buttonHelp), "clicked", help_interface, NULL);
01650
01651 g_signal_connect(G_OBJECT(buttonLogout), "clicked", button_Logout, NULL);
01652
01653 gtk_widget_show (window1);
01654
01655 gtk_main();
01656
01657 return EXIT_SUCCESS;
01658 }
01664 void register_interface(int argc, char *argv[])
01665 {
01666 GtkWidget *fixed;
01667 GtkWidget *username;
01668 GtkWidget *password;
01669 GtkWidget *email;
01670 GtkWidget *rollNo;
01671 GtkWidget *label1;
01672 GtkWidget *buttonOk;
01673 GtkWidget *buttonCancelRegister;
01674
01675 gtk_init(&argc, &argv);
01676
01677 window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
01678 gtk_window_set_title(GTK_WINDOW(window2), "Register");
01679 gtk_window_set_default_size(GTK_WINDOW(window2),400, 400);
01680 gtk_window_set_position(GTK_WINDOW(window2), GTK_WIN_POS_CENTER);
01681
01682 fixed = gtk_fixed_new();
01683 gtk_container_add(GTK_CONTAINER(window2), fixed);
01684
01685 label1 = gtk_label_new("*Registration for new students*");
01686 gtk_fixed_put(GTK_FIXED(fixed), label1, 30, 40);
01687
01688 password_entry1 = gtk_entry_new_with_max_length (NULL);
01689 gtk_fixed_put(GTK_FIXED(fixed), password_entry1, 170, 200);
01690 gtk_entry_set_visibility(GTK_ENTRY (password_entry1), FALSE);
01691
01692 username_entry1 = gtk_entry_new_with_max_length (NULL);
01693 gtk_fixed_put(GTK_FIXED(fixed), username_entry1, 170, 100);
01694
01695 rollNo_entry1 = gtk_entry_new_with_max_length (NULL);
01696 gtk_fixed_put(GTK_FIXED(fixed), rollNo_entry1, 170, 150);
01697
01698 password = gtk_label_new("Password");
01699 gtk_fixed_put(GTK_FIXED(fixed), password, 50, 200);
01700 gtk_widget_set_size_request(password, 80, 35);
01701
01702 username = gtk_label_new("Name");
01703 gtk_fixed_put(GTK_FIXED(fixed), username, 50, 100);
01704 gtk_widget_set_size_request(username, 80, 35);
01705
01706 rollNo = gtk_label_new("Roll No");
01707 gtk_fixed_put(GTK_FIXED(fixed), rollNo, 50, 150);
01708 gtk_widget_set_size_request(rollNo, 80, 35);
01709
01710 email = gtk_label_new("Student Email ID");
01711 gtk_fixed_put(GTK_FIXED(fixed), email, 60, 250);
01712 gtk_widget_set_size_request(password, 80, 35);
01713
01714 email_entry1 = gtk_entry_new_with_max_length (NULL);
01715 gtk_fixed_put(GTK_FIXED(fixed), email_entry1, 170, 250);
01716
01717 buttonOk = gtk_button_new_with_label("Sign Up");
01718 gtk_fixed_put(GTK_FIXED(fixed), buttonOk, 100, 300);
01719 gtk_widget_set_size_request(buttonOk, 80, 35);
01720
01721 buttonCancelRegister = gtk_button_new_with_label("Back to Login Page");
01722 gtk_fixed_put(GTK_FIXED(fixed), buttonCancelRegister, 200, 300);
01723 gtk_widget_set_size_request(buttonCancelRegister, 140, 35);
01724
01725 g_signal_connect(G_OBJECT(buttonOk), "clicked", button_ok_register, NULL);
01726 g_signal_connect(G_OBJECT(buttonCancelRegister), "clicked", button_cancel_register, NULL);
01727
01728 g_signal_connect_swapped(G_OBJECT(window2), "destroy", G_CALLBACK(gtk_main_quit), NULL);
01729
01730 gtk_widget_show_all(window2);
01731
01732 gtk_main ();
01733 }
01734
01739 int main( int argc, char *argv[])
01740 {
01741 GtkWidget *window;
01742 GtkWidget *fixed;
01743 GtkWidget *username;
01744 GtkWidget *password;
01745 GtkWidget *buttonsignup;
01746 GtkWidget *buttonOk;
01747 GtkWidget *buttonCancel;
01748 GtkWidget *label;
01749 GtkWidget *label1;
01750
01751 gtk_init(&argc, &argv);
01752
01753 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
01754 gtk_window_set_title(GTK_WINDOW(window), "Login");
01755 gtk_window_set_default_size(GTK_WINDOW(window),400, 400);
01756 gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
01757
01758 fixed = gtk_fixed_new();
01759 gtk_container_add(GTK_CONTAINER(window), fixed);
01760
01761 password_entry = gtk_entry_new_with_max_length (NULL);
01762 gtk_fixed_put(GTK_FIXED(fixed), password_entry, 170, 150);
01763 gtk_entry_set_visibility(GTK_ENTRY (password_entry), FALSE);
01764
01765 username_entry = gtk_entry_new_with_max_length (NULL);
01766 gtk_fixed_put(GTK_FIXED(fixed), username_entry, 170, 100);
01767
01768 label = gtk_label_new("Welcome to ");
01769 gtk_fixed_put(GTK_FIXED(fixed), label, 150, 20);
01770
01771 label1 = gtk_label_new("Software Technology Assignment Submission System");
01772 gtk_fixed_put(GTK_FIXED(fixed), label1, 30, 40);
01773
01774 password = gtk_label_new("Password*");
01775 gtk_fixed_put(GTK_FIXED(fixed), password, 50, 150);
01776 gtk_widget_set_size_request(password, 80, 35);
01777
01778 username = gtk_label_new("Email*");
01779 gtk_fixed_put(GTK_FIXED(fixed), username, 40, 100);
01780 gtk_widget_set_size_request(username, 80, 35);
01781
01782 buttonOk = gtk_button_new_with_label("Ok");
01783 gtk_fixed_put(GTK_FIXED(fixed), buttonOk, 150, 200);
01784 gtk_widget_set_size_request(buttonOk, 80, 35);
01785
01786 buttonCancel = gtk_button_new_with_label("Cancel");
01787 gtk_fixed_put(GTK_FIXED(fixed), buttonCancel, 250, 200);
01788 gtk_widget_set_size_request(buttonCancel, 80, 35);
01789
01790 buttonsignup = gtk_button_new_with_label("Sign Up For New Student");
01791 gtk_fixed_put(GTK_FIXED(fixed), buttonsignup, 50, 300);
01792
01793 g_signal_connect(G_OBJECT(buttonOk), "clicked", button_ok_login,label_D);
01794
01795 g_signal_connect(G_OBJECT(buttonCancel), "clicked", button_Cancel, NULL);
01796 g_signal_connect(G_OBJECT(buttonsignup), "clicked", signup, NULL);
01797
01798 gtk_widget_show_all(window);
01799
01800 gtk_main();
01801
01802 return EXIT_SUCCESS;
01803 }
01804
01805