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