/* (c) 2004 - John Schweitzer * * gtkcutlass-main.c - the main magic - goooey stuff happens here * * I am using glib a bit here. For the types, they are pretty much just * guaranteed portable (and have a 'g' in the front) * * more details are available at developer.gnome.org */ #include "cutlass.h" #include #include #include #include #include #include #include #include // GTK & Glade crap #include #include #include /* Gtk-Cutlass-specific crap */ #include #include #include #define CUT_CMD_FAILED -1 #define CUT_CMD_SUCCEEDED 0 #define CUT_CMD_UNKNOWN 1 #define CUT_CMD_QUIT 2 const char *verstr = PACKAGE_VERSION; user_info *userstuff; gui_status *currentstatus; gint something_selected = 0; gint main ( gint argc, gchar *argv[] ) { GladeXML * MainWinXML; gtk_init( &argc, &argv ); glade_init(); userstuff = user_info_init(); currentstatus = ( gui_status * ) gui_status_init(); //FIXME: looking only in the current directory is stupid. There should be // a GConf key or someshit to specify the location. MainWinXML = glade_xml_new(GTK_CUTLASS_GLADEDIR "gtkcutlass.glade", "GTKCutlassMainWin", NULL ); if ( MainWinXML == NULL ) g_error ( "Cannot find gtkcutlass.glade.\n" ); glade_xml_signal_autoconnect( MainWinXML ); gtkcutlass_add_gtktree( MainWinXML ); currentstatus->MainWinXML = MainWinXML; userstuff = ( user_info * ) load_user_info(); if ( userstuff == NULL ) g_error( "load_user_info failed\n" ); if ( ! currentstatus->newdude ) // we will run the cutlass_start crap from the end of the new user info section { cutlass_register_action( userstuff->cutlass_info, CUT_USER_CONN, gtkcutlass_conn_finish_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_USER_CONN_REQ, gtkcutlass_conn_new_incoming_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_USER_DROP, gtkcutlass_drop_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_USER_TIMEOUT, gtkcutlass_timeout_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_MSG_RECV, gtkcutlass_message_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_GRP_JOIN, gtkcutlass_group_join_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_GRP_JOIN_REQ, gtkcutlass_group_join_req_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_GRP_INVITE, gtkcutlass_group_invite_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_GRP_LEAVE, gtkcutlass_group_leave_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_FILE_OFFER, gtkcutlass_file_offer_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_FILE_ACCEPT, gtkcutlass_file_accept_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_FILE_SEND_DONE, gtkcutlass_file_send_done_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_FILE_RECV_DONE, gtkcutlass_file_recv_done_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_SND_OFFER, gtkcutlass_sound_offer_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_SND_ACCEPT, gtkcutlass_sound_accept_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_SND_DONE, gtkcutlass_sound_done_handler ); cutlass_register_action( userstuff->cutlass_info, CUT_SYS_MSG, gtkcutlass_system_message_handler ); g_print( "Starting cutlass Engine ... " ); if ( application_crankup( userstuff, currentstatus ) != 0 ) g_error( "general error starting cutlass - aborting\n" ); if ( cutlass_start( userstuff->cutlass_info ) != 0 ) g_error( "whoah. cutlass has issues. Bailing.\n" ); if ( cutlass_set_verbose ( userstuff->cutlass_info, userstuff->verbosity ) != 0 ) g_warning ( "Error setting cutlass verbosity\n" ); g_print ( "Done\n" ); } gtk_main(); g_print ( "Arrrrrrrrrr!\n" ); return ( 0 ); }