Thankz pradeep. The code realy worked. But i found some problem. for this case, the windowmain disappaer when time comes and windowmainmenu appears.. But the problem is windowmainmenu reappears every 10500ms. So any advice, please on how make in not appear every 10500ms..
Below will be the code.. I use glade to create the gui. If u want xml file i can upload to.
Code:
#include <gtk/gtk.h>
#include <stdio.h>
// GLOBAL GTK WIDGETS DECLARATION
GtkWidget *windowmainmenu;
GtkWidget *windowadduser;
GtkWidget *windowmain;
GtkWidget *windowdeleteuser;
GtkWidget *windowcalculate;
GtkWidget *windowauthenticate;
GtkWidget *windowcomparing;
//text entry
GtkWidget *teName;
GtkWidget *teIC;
//button
GtkWidget *btnAddUser;
GtkWidget *btnSave;
GtkWidget *btnMainMenu;
GtkWidget *btnDeleteUser;
GtkWidget *btnDelete;
GtkWidget *btnMainMenu2;
GtkWidget *btnThreshold;
GtkWidget *btnEER;
GtkWidget *btnMainMenu3;
GtkWidget *btnMainMenu4;
GtkWidget *btnVerify;
GtkWidget *pgb1;
//dialog box
GtkWidget *dialogusersaved;
GtkWidget *dialogdeletinguser;
GtkWidget *dialoguserdeleted;
GtkWidget *dialogthreshold;
GtkWidget *dialogEER;
GtkWidget *dialogverifed;
GtkWidget *dialogfailed;
//====================================================================
//Your SIGNAL HANDLER FUNCTION...
void pgb_10 (GtkObject *object, gpointer user_data)
{
gdouble new_val;
new_val = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (pgb1)) + 0.01;
if (new_val > 1.0)
new_val = 1.0;
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (pgb1), new_val);
}
void pgb_100 (GtkObject *object, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowmain);
}
//when X is clicked on the main window(the one with loading)
//the application is closed
void on_windowmain_destroy (GtkObject *object, gpointer user_data)
{
gtk_main_quit ();
}
//when X is clicked on the Main Menu window
//the application is closed
void on_windowmainmenu_destroy (GtkObject *object, gpointer user_data)
{
gtk_main_quit ();
}
////................Exit button.............////////////////
//When exit button is clicked on the main menu window
//the application is closed
void on_buttonExit_clicked (GtkButton *button, gpointer user_data)
{
gtk_main_quit();
}
///...............Add User Button................../////////
//When add user button is clicked on the main menu window
// add user window is opened
void on_buttonAddUser_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowadduser);
gtk_widget_hide(windowmainmenu);
}
//when X is clicked on the Add User window
//the application is closed and back to Main Menu
void on_windowadduser_delete_event (GtkWindow *window, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowadduser);
}
//When main menu button is clicked on the add user window
//Main Menu windowis showed
void on_buttonMainMenu_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowadduser);
}
//When Save button is clicked on add user window
//the name and IC is saved in the outFile
//dialog box appeared
void on_buttonSave_clicked (GtkButton *button, gpointer user_data)
{
//get from text entry 'teName'
const gchar *stringName;
stringName = gtk_entry_get_text(GTK_ENTRY (teName));
//get text entered by user in 'teName'
//get from text entry 'teIC'
const char *stringIC;
stringIC = gtk_entry_get_text(GTK_ENTRY(teIC)); //get text entered by user in 'teIC'
//save as output file
FILE *outFile;
outFile = fopen ("./outFile.txt","w+");
fprintf(outFile, "Name: %s\nIC: %s",stringName, stringIC);
fclose (outFile);
rename("outFile.txt","output.txt");
gtk_widget_show(dialogusersaved);
}
//when OK is clicked the the dialog box disappeared
//and the main menu window appeared
void on_buttonOK1_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_set_sensitive(btnMainMenu3,FALSE);
gtk_widget_hide(dialogusersaved);
}
///dialog box disappear when ESC is pressed//
void on_dialogusersaved_close (GtkDialog *dialog, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_set_sensitive(btnMainMenu3,FALSE);
gtk_widget_hide(dialogusersaved);
}
////...........Delete User............./////
//When delete user button is clicked on the main menu window
// delete user window is opened
void on_buttonDeleteUser_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowdeleteuser);
gtk_widget_hide(windowmainmenu);
}
//when X is clicked on the Delete User window
//the application is closed and back to Main Menu
void on_windowdeleteuser_delete_event (GtkWindow *window, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowdeleteuser);
}
//When main menu button is clicked on the delete user window
//Main Menu windowis showed
void on_buttonMainMenu2_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowdeleteuser);
}
//When Delete button is clicked on add user window
//dialog box appeared
void on_buttonDelete_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(dialogdeletinguser);
}
//Dialog box confirming want to delete or not
//Yes..Delete
//No.. Dont Delete
void on_buttonYes_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(dialoguserdeleted);
gtk_widget_hide(dialogdeletinguser);
}
void on_buttonNo_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowdeleteuser);
gtk_widget_hide(dialogdeletinguser);
}
///dialog box disappear when ESC is pressed//
void on_dialogdeletinguser_close (GtkDialog *dialog, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(dialogdeletinguser);
}
//when Yes is pressed new dialog box appear confirming that the user
//has been deleted from the database
//when OK is clicked the the dialog box disappeared
//and the main menu window appeared
void on_buttonOK2_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_set_sensitive(btnMainMenu3,FALSE);
gtk_widget_hide(dialoguserdeleted);
}
///dialog box disappear when ESC is pressed//
void on_dialoguserdeleted_close (GtkDialog *dialog, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_hide(dialogusersaved);
}
void on_buttonThreshold_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(dialogthreshold);
}
void on_buttonEER_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(dialogEER);
gtk_widget_set_sensitive(btnMainMenu3,TRUE);
}
void on_buttonOK3_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_hide(dialogthreshold);
}
void on_dialogthreshold_close (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_hide(dialogthreshold);
}
void on_buttonOK4_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_hide(dialogEER);
}
void on_dialogEER_close (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcalculate);
gtk_widget_hide(dialogEER);
}
void on_buttonMainMenu3_clicked (GtkButton *button, gpointer user_data)
{
//if((on_buttonEER_clicked)==TRUE)
//if((on_buttonThreshold_clicked)==TRUE)
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowcalculate);
gtk_widget_hide(windowadduser);
gtk_widget_hide(windowdeleteuser);
}
///............Authenticate....../////
void on_buttonAuthenticate_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowauthenticate);
gtk_widget_hide(windowmainmenu);
}
void on_windowauthenticate_delete_event (GtkWindow *window, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowauthenticate);
}
void on_buttonMainMenu4_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(windowauthenticate);
}
void on_buttonVerify_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowcomparing);
}
void on_windowcomparing_delete_event (GtkButton *button, gpointer user_data)
{
gtk_widget_hide(windowcomparing);
}
void on_buttonOK5_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(dialogverifed);
}
void on_dialogverifed_close (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(dialogverifed);
}
void on_buttonOK6_clicked (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(dialogfailed);
}
void on_dialogfailed_close (GtkButton *button, gpointer user_data)
{
gtk_widget_show(windowmainmenu);
gtk_widget_hide(dialogfailed);
}
//...SIGNAL HANDLER FUNCTION end here
//====================================================================
int main(int argc, char *argv[]) //or: main(int argc, char **argv)
{
// GTK Builder Declaration
GtkBuilder *builder;
// Initialize GTK+ library
gtk_init (&argc, &argv);
// Create a new GtkBuilder object
builder = gtk_builder_new ();
// Load the interface
gtk_builder_add_from_file (builder, "main1.xml", NULL);
// Create pointer point to object get from 'builder'...
windowmain= GTK_WIDGET (gtk_builder_get_object (builder, "windowmain"));
windowmainmenu = GTK_WIDGET (gtk_builder_get_object (builder, "windowmainmenu"));
windowadduser = GTK_WIDGET (gtk_builder_get_object (builder, "windowadduser"));
windowdeleteuser = GTK_WIDGET (gtk_builder_get_object (builder, "windowdeleteuser"));
windowcalculate = GTK_WIDGET (gtk_builder_get_object (builder, "windowcalculate"));
windowauthenticate = GTK_WIDGET (gtk_builder_get_object (builder, "windowauthenticate"));
windowcomparing = GTK_WIDGET (gtk_builder_get_object (builder, "windowcomparing"));
//text entry
teName = GTK_WIDGET (gtk_builder_get_object (builder, "entryName"));
teIC = GTK_WIDGET (gtk_builder_get_object (builder, "entryIC"));
//button
btnSave = GTK_WIDGET (gtk_builder_get_object (builder, "buttonSave"));
btnMainMenu = GTK_WIDGET (gtk_builder_get_object (builder, "buttonMainMenu"));
btnAddUser = GTK_WIDGET (gtk_builder_get_object (builder, "buttonAddUser"));
btnDeleteUser = GTK_WIDGET (gtk_builder_get_object (builder, "buttonDeleteUser"));
btnDelete = GTK_WIDGET (gtk_builder_get_object (builder, "buttonDelete"));
btnMainMenu2 = GTK_WIDGET (gtk_builder_get_object (builder, "buttonMainMenu2"));
btnThreshold = GTK_WIDGET (gtk_builder_get_object (builder, "buttonThreshold"));
btnEER = GTK_WIDGET (gtk_builder_get_object (builder, "buttonEER"));
btnMainMenu3 = GTK_WIDGET (gtk_builder_get_object (builder, "buttonMainMenu3"));
btnMainMenu4 = GTK_WIDGET (gtk_builder_get_object (builder, "buttonMainMenu4"));
btnVerify = GTK_WIDGET (gtk_builder_get_object (builder, "buttonVerify"));
pgb1= GTK_WIDGET (gtk_builder_get_object (builder, "progressbar1"));
//dialog box
dialogusersaved = GTK_WIDGET (gtk_builder_get_object (builder, "dialogusersaved"));
dialogdeletinguser = GTK_WIDGET (gtk_builder_get_object (builder, "dialogdeletinguser"));
dialoguserdeleted = GTK_WIDGET (gtk_builder_get_object (builder, "dialoguserdeleted"));
dialogthreshold = GTK_WIDGET (gtk_builder_get_object (builder, "dialogthreshold"));
dialogEER = GTK_WIDGET (gtk_builder_get_object (builder, "dialogEER"));
dialogverifed = GTK_WIDGET (gtk_builder_get_object (builder, "dialogverifed"));
dialogfailed = GTK_WIDGET (gtk_builder_get_object (builder, "dialogfailed"));
//...pointer to object end here
//**************************************************************
// Connect the signals to handler in the interface
gtk_builder_connect_signals (builder, NULL);
// Free Memory used by object 'builder'
g_object_unref (G_OBJECT (builder));
gtk_widget_show (windowmain);
g_timeout_add( 100, (GSourceFunc)pgb_10, NULL );
g_timeout_add( 10500, (GSourceFunc)pgb_100, NULL );
gtk_main ();
return 0;
}
Added CodeBB -dreblen