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 name 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
00902
00903
00904
00905 }
00909 void display_row4 ()
00910 {
00911 unsigned int field_count;
00912
00913 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest1));
00914
00915 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00916
00917 field_count = 0;
00918
00919 while (field_count < mysql_field_count (connection1))
00920 {
00921 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00922 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00923
00924
00925 field_count++;
00926 }
00927 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00928
00929 }
00933 void display_row5 ()
00934 {
00935 unsigned int field_count;
00936
00937 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewStudent));
00938
00939 gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
00940
00941 field_count = 0;
00942
00943 while (field_count < mysql_field_count (connection1))
00944 {
00945 gtk_text_buffer_insert(buffer, &iter, sqlrow[field_count], -1);
00946 gtk_text_buffer_insert(buffer, &iter, "\t", -1);
00947
00948 field_count++;
00949 }
00950 gtk_text_buffer_insert(buffer, &iter, "\n", -1);
00951
00952 }
00956 void clear()
00957 {
00958 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view2));
00959 gtk_text_buffer_set_text (buffer, " ", -1);
00960
00961 buffer1=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view1));
00962 gtk_text_buffer_set_text (buffer1, " ", -1);
00963
00964 buffer2=gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
00965 gtk_text_buffer_set_text (buffer2, " ", -1);
00966
00967 buffer3=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest));
00968 gtk_text_buffer_set_text (buffer3, " ", -1);
00969
00970 gtk_entry_set_text(GTK_ENTRY(assig_no), " ");
00971 gtk_entry_set_text(GTK_ENTRY(quest_no), " ");
00972 }
00976 void clear1()
00977 {
00978 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewQuest1));
00979 gtk_text_buffer_set_text (buffer, " ", -1);
00980
00981 gtk_entry_set_text(GTK_ENTRY(assig_no1), " ");
00982 }
00986 void clear2()
00987 {
00988 buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(viewStudent));
00989 gtk_text_buffer_set_text (buffer, " ", -1);
00990
00991 gtk_entry_set_text(GTK_ENTRY(assig_no2), " ");
00992 }
00996 void editable()
00997 {
00998 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), TRUE);
00999 }
01003 void editable1()
01004 {
01005 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), FALSE);
01006 }
01010 void editable3()
01011 {
01012 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest1), TRUE);
01013
01014 }
01019 void signup(GtkWidget *widget, gpointer data)
01020 {
01021 register_interface();
01022 }
01027 void viewAnswer(GtkWidget *widget, gpointer data)
01028 {
01029 viewAnswers_interface();
01030 }
01038 void button_ok_register(GtkWidget *widget, gpointer data)
01039 {
01040 char sql_statement[BUFFER];
01041 int result;
01042
01043 const char *username =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry1));
01044 const char *password =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)password_entry1));
01045 const char *email_text =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)email_entry1));
01046 const char *rollNo_text =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)rollNo_entry1));
01047
01048 connection1 = mysql_init(NULL);
01049 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
01050 {
01051 sprintf(sql_statement,"insert into register (name,rollNo,password,email)values('%s','%s','%s','%s')",username,rollNo_text,password,email_text);
01052 result = mysql_query (connection1, sql_statement);
01053
01054 if (result==0)
01055 {
01056 printf ("Row inserted successfully.\n");
01057 msg_dialog2();
01058 }
01059 else
01060 {
01061 fprintf (stderr, "Could not insert data as %d: %s\n",
01062 mysql_errno (connection1),
01063 mysql_error (connection1));
01064 msg_dialog6();
01065
01066 }
01067 mysql_close (connection1);
01068 }
01069 else
01070 {
01071 fprintf (stderr, "Connection failed\n");
01072 if (mysql_errno (connection1))
01073 {
01074 fprintf (stderr, "Connection error %d: %s\n",
01075 mysql_errno (connection1),
01076 mysql_error (connection1));
01077 }
01078 }
01079 }
01085 void button_cancel_register(GtkWidget *widget, gpointer data)
01086 {
01087 gtk_widget_hide(window2);
01088 }
01091 void msg_dialog()
01092 {
01093 GtkWidget *dialog;
01094
01095 dialog = gtk_message_dialog_new (NULL,
01096 GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
01097 "Answers successfully saved to the external file");
01098 gtk_dialog_run (GTK_DIALOG (dialog));
01099 gtk_widget_destroy (dialog);
01100
01101 }
01106 void save()
01107 {
01108 FILE *sample_file;
01109 char filename[100]="students_answers.txt";
01110
01111 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
01112 GtkTextIter i1, it;
01113 gchar *text,k;
01114 int i;
01115
01116 sample_file=fopen(filename, "w");
01117 if(sample_file==NULL)
01118 {
01119 fprintf(stderr, "Cant open file '%s' for writing\n", filename);
01120 perror("");
01121 exit(EXIT_FAILURE);
01122 }
01123
01124 gtk_text_buffer_get_iter_at_mark(buffer, &it, gtk_text_buffer_get_insert(buffer));
01125
01126 k = gtk_text_iter_get_line(&it);
01127 gtk_text_buffer_get_iter_at_line(buffer, &it, k);
01128 gtk_text_buffer_get_end_iter(buffer, &i1);
01129 text = gtk_text_buffer_get_text(buffer, &it, &i1, FALSE);
01130
01131 for( i=0;text[i] && text[i]!='\n';i++);
01132 text[i]=0;
01133
01134 fprintf(sample_file, "%s", text);
01135 msg_dialog();
01136 }
01141 void browse()
01142 {
01143 GtkWidget *dialog;
01144 char *filename;
01145 parent_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01146 dialog = gtk_file_chooser_dialog_new ("Browse File",
01147 parent_window,
01148 GTK_FILE_CHOOSER_ACTION_OPEN,
01149 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
01150 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
01151 NULL);
01152 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
01153 {
01154 filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
01155 gtk_entry_set_text(GTK_ENTRY(name_entry1), filename);
01156 g_free (filename);
01157 }
01158 gtk_widget_destroy (dialog);
01159
01160 }
01165 void upload()
01166 {
01167 const char *assgNo =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry));
01168 const char *name =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)username_entry));
01169 const char *filename =gtk_entry_get_text(GTK_ENTRY((GtkWidget *)name_entry1));
01170
01171 char sql_statement[BUFFER];
01172
01173 int result2;
01174 connection1 = mysql_init(NULL);
01175 if (mysql_real_connect (connection1, "localhost", "cs3002_user", "cs3002_password", "cs3002_database", 0, NULL, 0))
01176 {
01177
01178 sprintf(sql_statement,"insert into submissionFile (assgNo,email,filename)values('%s','%s','%s')",assgNo,name,filename);
01179
01180 result2 = mysql_query (connection1, sql_statement);
01181
01182 if (result2==0)
01183 {
01184 printf ("Row inserted successfully.\n");
01185 msg_dialog1();
01186
01187
01188 }
01189 else
01190 {
01191 fprintf (stderr, "Could not insert data");
01192 msg_dialog3();
01193
01194 }
01195
01196 mysql_close (connection1);
01197 }
01198 else
01199 {
01200 fprintf (stderr, "Connection failed\n");
01201 if (mysql_errno (connection1))
01202 {
01203 fprintf (stderr, "Connection error %d: %s\n",
01204 mysql_errno (connection1),
01205 mysql_error (connection1));
01206 }
01207 }
01208 }
01213 void viewAnswers_interface(int argc, char *argv[])
01214 {
01215 GtkWidget *box_A;
01216 GtkWidget *buttonView;
01217 GtkWidget *buttonBack;
01218 GtkWidget *fixed;
01219
01220 gtk_init (&argc, &argv);
01221
01222 window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01223
01224 gtk_window_set_title (GTK_WINDOW (window3), "Aspect Frame");
01225
01226 g_signal_connect (G_OBJECT (window3), "destroy",G_CALLBACK (exit), NULL);
01227
01228 gtk_window_set_title (GTK_WINDOW (window3), "Software Technology Assignment Submission System");
01229 gtk_container_set_border_width (GTK_CONTAINER (window3), 10);
01230 gtk_window_set_default_size(GTK_WINDOW(window1),400,400);
01231
01232 box_A = gtk_vbox_new (FALSE, 5);
01233 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01234 gtk_container_add (GTK_CONTAINER (window3), box_A);
01235 gtk_widget_show (box_A);
01236
01237 fixed = gtk_fixed_new();
01238 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01239
01240 buttonView = gtk_button_new_with_label("View your answers");
01241 gtk_fixed_put(GTK_FIXED(fixed), buttonView, 50, 30);
01242 gtk_widget_set_size_request(buttonView, 250, 30);
01243
01244 viewQuest = gtk_text_view_new();
01245 gtk_fixed_put(GTK_FIXED(fixed), viewQuest , 10, 100);
01246 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest ), TRUE);
01247 gtk_widget_set_size_request( viewQuest , 400, 160);
01248
01249 buttonBack = gtk_button_new_with_label("Back to Main Page");
01250 gtk_fixed_put(GTK_FIXED(fixed), buttonBack, 50, 300);
01251 gtk_widget_set_size_request(buttonBack, 250, 30);
01252
01253 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records2),NULL);
01254 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records6),NULL);
01255 g_signal_connect(G_OBJECT(buttonBack), "clicked", G_CALLBACK(button_Back),NULL);
01256
01257 gtk_widget_show_all(fixed);
01258
01259 gtk_widget_show (window3);
01260
01261 gtk_main();
01262 }
01269 void admin_interface(int argc, char *argv[])
01270 {
01271 GtkWidget *box_A;
01272 GtkWidget *label_A;
01273 GtkWidget *label_A1;
01274 GtkWidget *label_B;
01275 GtkWidget *label_create;
01276 GtkWidget *label_list;
01277 GtkWidget *fixed;
01278 GtkWidget *label_C;
01279 GtkWidget *label_edit;
01280 GtkWidget *buttonDisplay;
01281 GtkWidget *buttonLogout;
01282 GtkWidget *buttonHistory1;
01283 GtkWidget *buttonSubmit;
01284 GtkWidget *buttonSave1;
01285 GtkWidget *buttonEdit;
01286 GtkWidget *buttonClear;
01287 GtkWidget *buttonClear1;
01288
01289 gtk_init (&argc, &argv);
01290
01291 window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01292
01293 gtk_window_set_title (GTK_WINDOW (window1), "Aspect Frame");
01294
01295 g_signal_connect (G_OBJECT (window1), "destroy",G_CALLBACK (exit), NULL);
01296
01297 gtk_window_set_title (GTK_WINDOW (window1), "Software Technology Assignment Submission System");
01298 gtk_container_set_border_width (GTK_CONTAINER (window1), 10);
01299 gtk_window_set_default_size(GTK_WINDOW(window1),700,200);
01300
01301 box_A = gtk_vbox_new (FALSE, 5);
01302 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01303 gtk_container_add (GTK_CONTAINER (window1), box_A);
01304 gtk_widget_show (box_A);
01305
01306 label_D = gtk_label_new ("WELCOME TO ADMIN PAGE");
01307 gtk_box_pack_start (GTK_BOX (box_A), label_D, FALSE, TRUE, 0);
01308 gtk_widget_grab_focus(label_D);
01309 gtk_widget_show (label_D);
01310
01311
01312 fixed = gtk_fixed_new();
01313 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01314
01315 buttonHistory1 = gtk_button_new_with_label("View assignments and questions");
01316 gtk_fixed_put(GTK_FIXED( fixed), buttonHistory1, 600, 95);
01317 gtk_widget_set_size_request(buttonHistory1, 250, 30);
01318
01319 buttonDisplay = gtk_button_new_with_label("Display List of Students");
01320 gtk_fixed_put(GTK_FIXED(fixed), buttonDisplay, 450, 390);
01321 gtk_widget_set_size_request(buttonDisplay, 200, 30);
01322
01323 buttonClear1 = gtk_button_new_with_label("Clear");
01324 gtk_fixed_put(GTK_FIXED(fixed), buttonClear1, 470, 430);
01325 gtk_widget_set_size_request(buttonClear1, 80, 35);
01326
01327 buttonLogout = gtk_button_new_with_label("Logout");
01328 gtk_fixed_put(GTK_FIXED(fixed), buttonLogout, 730, 2);
01329 gtk_widget_set_size_request(buttonLogout, 80, 30);
01330
01331 label_create = gtk_label_new ("Create assignment and question here :");
01332 gtk_fixed_put(GTK_FIXED(fixed), label_create, 2, 100);
01333
01334 label_A = gtk_label_new ("Assignment No :");
01335 gtk_fixed_put(GTK_FIXED(fixed), label_A, 2, 130);
01336
01337 assig_no= gtk_entry_new_with_max_length (100);
01338 gtk_fixed_put(GTK_FIXED(fixed), assig_no, 120, 125);
01339 gtk_entry_set_editable(GTK_ENTRY (assig_no), TRUE);
01340 gtk_widget_set_size_request(assig_no, 30, 30);
01341
01342 label_B = gtk_label_new ("Question No :");
01343 gtk_fixed_put(GTK_FIXED(fixed), label_B, 2, 160);
01344
01345 quest_no=gtk_entry_new_with_max_length (100);
01346 gtk_fixed_put(GTK_FIXED(fixed), quest_no, 120, 160);
01347 gtk_entry_set_editable(GTK_ENTRY (quest_no), TRUE);
01348 gtk_widget_set_size_request(quest_no, 30, 30);
01349
01350 viewQuest = gtk_text_view_new();
01351 gtk_fixed_put(GTK_FIXED(fixed), viewQuest , 2, 200);
01352 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest ), TRUE);
01353 gtk_widget_set_size_request( viewQuest , 300, 100);
01354
01355 label_edit = gtk_label_new ("View and edit questions here :");
01356 gtk_fixed_put(GTK_FIXED(fixed), label_edit, 450, 70);
01357
01358 label_A1 = gtk_label_new ("Assignment No :");
01359 gtk_fixed_put(GTK_FIXED(fixed), label_A1, 450, 100);
01360
01361 assig_no1= gtk_entry_new_with_max_length (100);
01362 gtk_fixed_put(GTK_FIXED(fixed), assig_no1, 560, 95);
01363 gtk_entry_set_editable(GTK_ENTRY (assig_no1), TRUE);
01364 gtk_widget_set_size_request(assig_no1, 30, 30);
01365
01366 label_list = gtk_label_new ("List of questions :");
01367 gtk_fixed_put(GTK_FIXED(fixed), label_list, 450, 130);
01368
01369 viewQuest1 = gtk_text_view_new();
01370 gtk_fixed_put(GTK_FIXED(fixed), viewQuest1 , 450, 150);
01371 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewQuest1 ), FALSE);
01372 gtk_widget_set_size_request( viewQuest1 , 450, 150);
01373
01374 buttonSubmit = gtk_button_new_with_label("Submit");
01375 gtk_fixed_put(GTK_FIXED(fixed), buttonSubmit, 10, 320);
01376 gtk_widget_set_size_request(buttonSubmit, 80, 35);
01377
01378 buttonEdit = gtk_button_new_with_label("Edit");
01379 gtk_fixed_put(GTK_FIXED(fixed), buttonEdit, 450, 320);
01380 gtk_widget_set_size_request(buttonEdit, 80, 35);
01381
01382 buttonSave1 = gtk_button_new_with_label("Save");
01383 gtk_fixed_put(GTK_FIXED(fixed), buttonSave1, 540, 320);
01384 gtk_widget_set_size_request(buttonSave1, 80, 35);
01385
01386 buttonClear = gtk_button_new_with_label("Clear");
01387 gtk_fixed_put(GTK_FIXED(fixed), buttonClear, 630, 320);
01388 gtk_widget_set_size_request(buttonClear, 80, 35);
01389
01390 label_C = gtk_label_new ("List of Students that have submitted the assignment number:");
01391 gtk_fixed_put(GTK_FIXED(fixed), label_C, 2, 400);
01392
01393 assig_no2= gtk_entry_new_with_max_length (100);
01394 gtk_fixed_put(GTK_FIXED(fixed), assig_no2, 410, 390);
01395 gtk_entry_set_editable(GTK_ENTRY (assig_no2), TRUE);
01396 gtk_widget_set_size_request(assig_no2, 30, 30);
01397
01398 viewStudent = gtk_text_view_new();
01399 gtk_fixed_put(GTK_FIXED(fixed), viewStudent, 2, 420);
01400 gtk_text_view_set_editable(GTK_TEXT_VIEW (viewStudent ), FALSE);
01401 gtk_widget_set_size_request( viewStudent , 450, 200);
01402
01403 gtk_widget_show_all(fixed);
01404
01405 g_signal_connect(G_OBJECT(buttonHistory1), "clicked", G_CALLBACK(fetch_records3),NULL);
01406
01407 g_signal_connect(G_OBJECT(buttonDisplay), "clicked", G_CALLBACK(fetch_records4),NULL);
01408 g_signal_connect(G_OBJECT(buttonDisplay), "clicked", G_CALLBACK(fetch_records5),NULL);
01409
01410 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(add_records1),NULL);
01411 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(clear),NULL);
01412
01413 g_signal_connect(G_OBJECT(buttonSave1), "clicked", G_CALLBACK(modify_records),NULL);
01414 g_signal_connect(G_OBJECT(buttonEdit), "clicked", G_CALLBACK(editable3),NULL);
01415
01416 g_signal_connect(G_OBJECT(buttonClear), "clicked", G_CALLBACK(clear1),NULL);
01417 g_signal_connect(G_OBJECT(buttonClear1), "clicked", G_CALLBACK(clear2),NULL);
01418
01419 g_signal_connect(G_OBJECT(buttonLogout), "clicked", button_Logout, NULL);
01420
01421 gtk_widget_show (window1);
01422
01423 gtk_main();
01424
01425 return EXIT_SUCCESS;
01426
01427 }
01434 void assignment_interface(int argc, char *argv[])
01435 {
01436
01437 GtkWidget *box_A;
01438 GtkWidget *box_B;
01439 GtkWidget *box_C;
01440 GtkWidget *label_A;
01441 GtkWidget *separator;
01442 GtkWidget *fixed;
01443 GtkWidget *label_C;
01444 GtkWidget *buttonView;
01445 GtkWidget *buttonView1;
01446 GtkWidget *buttonClear;
01447 GtkWidget *buttonLogout;
01448 GtkWidget *fixed_A;
01449 GtkWidget *buttonHistory;
01450
01451 GtkWidget *buttonSubmit;
01452 GtkWidget *buttonSave;
01453 GtkWidget *buttonBrowse;
01454 GtkWidget *buttonUpload;
01455
01456 gtk_init (&argc, &argv);
01457
01458 window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
01459
01460 gtk_window_set_title (GTK_WINDOW (window1), "Aspect Frame");
01461
01462 g_signal_connect (G_OBJECT (window1), "destroy",G_CALLBACK (exit), NULL);
01463
01464 gtk_window_set_title (GTK_WINDOW (window1), "Software Technology Assignment Submission System");
01465 gtk_container_set_border_width (GTK_CONTAINER (window1), 10);
01466 gtk_window_set_default_size(GTK_WINDOW(window1),3000,200);
01467
01468 box_A = gtk_vbox_new (FALSE, 5);
01469 gtk_container_set_border_width (GTK_CONTAINER (box_A), 5);
01470 gtk_container_add (GTK_CONTAINER (window1), box_A);
01471 gtk_widget_show (box_A);
01472
01473
01474
01475
01476
01477
01478 fixed = gtk_fixed_new();
01479 gtk_box_pack_start (GTK_BOX (box_A), fixed, FALSE, FALSE, 0);
01480
01481 buttonView = gtk_button_new_with_label("Current assignment");
01482 gtk_fixed_put(GTK_FIXED(fixed), buttonView, 2, 50);
01483 gtk_widget_set_size_request(buttonView, 200, 30);
01484
01485 buttonHistory = gtk_button_new_with_label("Previous answers");
01486 gtk_fixed_put(GTK_FIXED( fixed), buttonHistory, 300, 50);
01487 gtk_widget_set_size_request(buttonHistory, 250, 30);
01488
01489 buttonClear = gtk_button_new_with_label("Help");
01490 gtk_fixed_put(GTK_FIXED(fixed), buttonClear, 630, 50);
01491 gtk_widget_set_size_request(buttonClear, 60, 30);
01492
01493 buttonLogout = gtk_button_new_with_label("Logout");
01494 gtk_fixed_put(GTK_FIXED(fixed), buttonLogout, 750, 50);
01495 gtk_widget_set_size_request(buttonLogout, 80, 30);
01496
01497 label_A = gtk_label_new ("Assignment No :");
01498 gtk_fixed_put(GTK_FIXED(fixed), label_A, 2, 100);
01499
01500 name_entry= gtk_entry_new_with_max_length (100);
01501 gtk_fixed_put(GTK_FIXED(fixed), name_entry, 120, 95);
01502 gtk_entry_set_editable(GTK_ENTRY (name_entry), TRUE);
01503 gtk_widget_set_size_request(name_entry, 30, 30);
01504
01505 buttonView1 = gtk_button_new_with_label("View current questions for this assignment");
01506 gtk_fixed_put(GTK_FIXED(fixed), buttonView1, 2, 140);
01507 gtk_widget_set_size_request(buttonView1, 320, 30);
01508
01509 gtk_widget_show_all(fixed);
01510
01511 label_A = gtk_label_new ("Answer all the questions below :");
01512 gtk_box_pack_start (GTK_BOX (box_A), label_A, FALSE, FALSE, 0);
01513 gtk_widget_grab_focus(label_A);
01514 gtk_widget_show (label_A);
01515
01516 view1 = gtk_text_view_new();
01517 gtk_box_pack_start(GTK_BOX(box_A), view1, FALSE, FALSE, 0);
01518 gtk_text_view_set_editable(GTK_TEXT_VIEW (view1), FALSE);
01519 gtk_widget_set_size_request( view1, 300, 100);
01520 GTK_WIDGET_SET_FLAGS ( view1, GTK_CAN_DEFAULT);
01521 gtk_widget_grab_focus( view1);
01522 gtk_widget_show ( view1);
01523
01524 box_B = gtk_vbox_new (FALSE, 5);
01525 gtk_container_set_border_width (GTK_CONTAINER (box_B), 5);
01526 gtk_box_pack_start (GTK_BOX (box_A), box_B, FALSE, TRUE, 0);
01527 gtk_widget_show (box_B);
01528
01529 separator = gtk_hseparator_new ();
01530 gtk_box_pack_start (GTK_BOX (box_A), separator, FALSE, TRUE, 0);
01531 gtk_widget_show (separator);
01532
01533 separator = gtk_hseparator_new ();
01534 gtk_box_pack_start (GTK_BOX (box_B), separator, FALSE, TRUE, 0);
01535 gtk_widget_show (separator);
01536
01537 label_C = gtk_label_new ("Answer here :");
01538 gtk_box_pack_start (GTK_BOX (box_B), label_C, FALSE, FALSE, 0);
01539 gtk_widget_grab_focus(label_C);
01540 gtk_widget_show (label_C);
01541
01542 view = gtk_text_view_new();
01543 gtk_box_pack_start(GTK_BOX(box_B), view, FALSE, FALSE, 0);
01544 gtk_text_view_set_editable(GTK_TEXT_VIEW (view), TRUE);
01545 gtk_widget_set_size_request( view, 300, 250);
01546 GTK_WIDGET_SET_FLAGS ( view, GTK_CAN_DEFAULT);
01547 gtk_widget_grab_focus( view);
01548 gtk_widget_show ( view);
01549
01550 box_C = gtk_vbox_new (FALSE, 5);
01551 gtk_container_set_border_width (GTK_CONTAINER (box_C), 5);
01552 gtk_box_pack_start (GTK_BOX (box_B), box_C, FALSE, TRUE, 0);
01553 gtk_widget_show (box_C);
01554
01555 fixed_A = gtk_fixed_new();
01556 gtk_box_pack_start (GTK_BOX (box_C), fixed_A, FALSE, FALSE, 0);
01557
01558 buttonSave = gtk_button_new_with_label("Save");
01559 gtk_fixed_put(GTK_FIXED(fixed_A), buttonSave, 300, 30);
01560 gtk_widget_set_size_request(buttonSave, 60, 35);
01561
01562 buttonSubmit = gtk_button_new_with_label("Submit");
01563 gtk_fixed_put(GTK_FIXED(fixed_A), buttonSubmit, 400, 30);
01564 gtk_widget_set_size_request(buttonSubmit, 80, 35);
01565 gtk_widget_show_all (fixed_A);
01566
01567 name_entry1 = gtk_entry_new_with_max_length (100);
01568 gtk_fixed_put(GTK_FIXED(fixed_A), name_entry1, 500, 30);
01569 gtk_entry_set_editable(GTK_ENTRY (name_entry1), TRUE);
01570 gtk_widget_set_size_request(name_entry1, 200, 35);
01571
01572 buttonBrowse = gtk_button_new_with_label("Browse File");
01573 gtk_fixed_put(GTK_FIXED(fixed_A), buttonBrowse, 700, 30);
01574 gtk_widget_set_size_request(buttonBrowse, 100, 35);
01575 gtk_widget_show_all (fixed_A);
01576
01577 buttonUpload = gtk_button_new_with_label("Upload File");
01578 gtk_fixed_put(GTK_FIXED(fixed_A), buttonUpload, 800, 30);
01579 gtk_widget_set_size_request(buttonUpload, 100, 35);
01580 gtk_widget_show_all (fixed_A);
01581
01582 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(clear),NULL);
01583
01584 g_signal_connect(G_OBJECT(buttonView1), "clicked", G_CALLBACK(fetch_records),NULL);
01585 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(fetch_records1),NULL);
01586
01587 g_signal_connect(G_OBJECT(buttonView), "clicked", G_CALLBACK(editable),NULL);
01588
01589 g_signal_connect(G_OBJECT(buttonHistory), "clicked", G_CALLBACK(viewAnswer),NULL);
01590
01591 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(add_records),NULL);
01592
01593 g_signal_connect(G_OBJECT(buttonSubmit), "clicked", G_CALLBACK(editable1),NULL);
01594
01595 g_signal_connect(G_OBJECT(buttonSave), "clicked", G_CALLBACK(save),NULL);
01596
01597 g_signal_connect(G_OBJECT(buttonBrowse), "clicked", G_CALLBACK(browse),NULL);
01598 g_signal_connect(G_OBJECT(buttonUpload), "clicked", G_CALLBACK(upload),NULL);
01599
01600 g_signal_connect(G_OBJECT(buttonLogout), "clicked", button_Logout, NULL);
01601
01602 gtk_widget_show (window1);
01603
01604 gtk_main();
01605
01606 return EXIT_SUCCESS;
01607 }
01613 void register_interface(int argc, char *argv[])
01614 {
01615 GtkWidget *fixed;
01616 GtkWidget *username;
01617 GtkWidget *password;
01618 GtkWidget *email;
01619 GtkWidget *rollNo;
01620 GtkWidget *label1;
01621 GtkWidget *buttonOk;
01622 GtkWidget *buttonCancelRegister;
01623
01624 gtk_init(&argc, &argv);
01625
01626 window2 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
01627 gtk_window_set_title(GTK_WINDOW(window2), "Register");
01628 gtk_window_set_default_size(GTK_WINDOW(window2),400, 400);
01629 gtk_window_set_position(GTK_WINDOW(window2), GTK_WIN_POS_CENTER);
01630
01631 fixed = gtk_fixed_new();
01632 gtk_container_add(GTK_CONTAINER(window2), fixed);
01633
01634 label1 = gtk_label_new("*Registration for new students*");
01635 gtk_fixed_put(GTK_FIXED(fixed), label1, 30, 40);
01636
01637 password_entry1 = gtk_entry_new_with_max_length (NULL);
01638 gtk_fixed_put(GTK_FIXED(fixed), password_entry1, 170, 200);
01639 gtk_entry_set_visibility(GTK_ENTRY (password_entry1), FALSE);
01640
01641 username_entry1 = gtk_entry_new_with_max_length (NULL);
01642 gtk_fixed_put(GTK_FIXED(fixed), username_entry1, 170, 100);
01643
01644 rollNo_entry1 = gtk_entry_new_with_max_length (NULL);
01645 gtk_fixed_put(GTK_FIXED(fixed), rollNo_entry1, 170, 150);
01646
01647 password = gtk_label_new("Password");
01648 gtk_fixed_put(GTK_FIXED(fixed), password, 50, 200);
01649 gtk_widget_set_size_request(password, 80, 35);
01650
01651 username = gtk_label_new("Name");
01652 gtk_fixed_put(GTK_FIXED(fixed), username, 50, 100);
01653 gtk_widget_set_size_request(username, 80, 35);
01654
01655 rollNo = gtk_label_new("Roll No");
01656 gtk_fixed_put(GTK_FIXED(fixed), rollNo, 50, 150);
01657 gtk_widget_set_size_request(rollNo, 80, 35);
01658
01659 email = gtk_label_new("Student Email ID");
01660 gtk_fixed_put(GTK_FIXED(fixed), email, 60, 250);
01661 gtk_widget_set_size_request(password, 80, 35);
01662
01663 email_entry1 = gtk_entry_new_with_max_length (NULL);
01664 gtk_fixed_put(GTK_FIXED(fixed), email_entry1, 170, 250);
01665
01666 buttonOk = gtk_button_new_with_label("Sign Up");
01667 gtk_fixed_put(GTK_FIXED(fixed), buttonOk, 100, 300);
01668 gtk_widget_set_size_request(buttonOk, 80, 35);
01669
01670 buttonCancelRegister = gtk_button_new_with_label("Back to Login Page");
01671 gtk_fixed_put(GTK_FIXED(fixed), buttonCancelRegister, 200, 300);
01672 gtk_widget_set_size_request(buttonCancelRegister, 140, 35);
01673
01674 g_signal_connect(G_OBJECT(buttonOk), "clicked", button_ok_register, NULL);
01675 g_signal_connect(G_OBJECT(buttonCancelRegister), "clicked", button_cancel_register, NULL);
01676
01677 g_signal_connect_swapped(G_OBJECT(window2), "destroy", G_CALLBACK(gtk_main_quit), NULL);
01678
01679 gtk_widget_show_all(window2);
01680
01681 gtk_main ();
01682 }
01683
01688 int main( int argc, char *argv[])
01689 {
01690 GtkWidget *window;
01691 GtkWidget *fixed;
01692 GtkWidget *username;
01693 GtkWidget *password;
01694 GtkWidget *buttonsignup;
01695 GtkWidget *buttonOk;
01696 GtkWidget *buttonCancel;
01697 GtkWidget *label;
01698 GtkWidget *label1;
01699
01700 gtk_init(&argc, &argv);
01701
01702 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
01703 gtk_window_set_title(GTK_WINDOW(window), "Login");
01704 gtk_window_set_default_size(GTK_WINDOW(window),400, 400);
01705 gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
01706
01707 fixed = gtk_fixed_new();
01708 gtk_container_add(GTK_CONTAINER(window), fixed);
01709
01710 password_entry = gtk_entry_new_with_max_length (NULL);
01711 gtk_fixed_put(GTK_FIXED(fixed), password_entry, 170, 150);
01712 gtk_entry_set_visibility(GTK_ENTRY (password_entry), FALSE);
01713
01714 username_entry = gtk_entry_new_with_max_length (NULL);
01715 gtk_fixed_put(GTK_FIXED(fixed), username_entry, 170, 100);
01716
01717 label = gtk_label_new("Welcome to ");
01718 gtk_fixed_put(GTK_FIXED(fixed), label, 150, 20);
01719
01720 label1 = gtk_label_new("Software Technology Assignment Submission System");
01721 gtk_fixed_put(GTK_FIXED(fixed), label1, 30, 40);
01722
01723 password = gtk_label_new("Password*");
01724 gtk_fixed_put(GTK_FIXED(fixed), password, 50, 150);
01725 gtk_widget_set_size_request(password, 80, 35);
01726
01727 username = gtk_label_new("Email*");
01728 gtk_fixed_put(GTK_FIXED(fixed), username, 40, 100);
01729 gtk_widget_set_size_request(username, 80, 35);
01730
01731 buttonOk = gtk_button_new_with_label("Ok");
01732 gtk_fixed_put(GTK_FIXED(fixed), buttonOk, 150, 200);
01733 gtk_widget_set_size_request(buttonOk, 80, 35);
01734
01735 buttonCancel = gtk_button_new_with_label("Cancel");
01736 gtk_fixed_put(GTK_FIXED(fixed), buttonCancel, 250, 200);
01737 gtk_widget_set_size_request(buttonCancel, 80, 35);
01738
01739 buttonsignup = gtk_button_new_with_label("Sign Up For New Student");
01740 gtk_fixed_put(GTK_FIXED(fixed), buttonsignup, 50, 300);
01741
01742 g_signal_connect(G_OBJECT(buttonOk), "clicked", button_ok_login,label_D);
01743
01744 g_signal_connect(G_OBJECT(buttonCancel), "clicked", button_Cancel, NULL);
01745 g_signal_connect(G_OBJECT(buttonsignup), "clicked", signup, NULL);
01746
01747 gtk_widget_show_all(window);
01748
01749 gtk_main();
01750
01751 return EXIT_SUCCESS;
01752 }
01753
01754