1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#include <gtk/gtk.h>
#include "npconfig.h"
#include "ctype.h"
void NP_Config::create_server_frame( GtkWidget *outer_box, int i,
const char *server )
{
// inner frame
char title[ 128 ];
snprintf( title, sizeof title, "Server %d", i + 1 );
GtkWidget *inner_frame = gtk_frame_new( title );
gtk_widget_show( inner_frame );
gtk_container_border_width( GTK_CONTAINER( inner_frame ), 10 );
gtk_box_pack_start( GTK_BOX( outer_box ), inner_frame,
FALSE, FALSE, 0 );
server_frames[ i ] = inner_frame;
// vbox
GtkWidget *vbox = gtk_vbox_new( FALSE, 5 );
gtk_widget_show( vbox );
gtk_container_border_width( GTK_CONTAINER( vbox ), 10 );
gtk_container_add( GTK_CONTAINER( inner_frame ), vbox );
// address label
snprintf( title, sizeof title, "%s:", server );
for( char *pointer = title; *pointer; ++pointer )
*pointer = toupper( *pointer );
GtkWidget *label = gtk_label_new( title );
gtk_widget_show( label );
gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, FALSE, 0 );
// check button
GtkWidget *button
= gtk_check_button_new_with_label( "authenticating" );
gtk_widget_show( button );
gtk_box_pack_start( GTK_BOX( vbox ), button, FALSE, FALSE, 0 );
gtk_object_set_data( GTK_OBJECT( button ), "container", inner_frame );
gtk_signal_connect( GTK_OBJECT( button ), "toggled",
GTK_SIGNAL_FUNC( check_buttons_callback ),
NULL );
// user label
label = gtk_label_new( "user name:" );
gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, FALSE, 0 );
// user entry
GtkWidget *user_entry = gtk_entry_new_with_max_length( 100 );
gtk_box_pack_start( GTK_BOX( vbox ), user_entry, FALSE, TRUE, 0 );
gtk_object_set_data( GTK_OBJECT( user_entry ),
"position", ( gpointer) i );
gtk_object_set_data( GTK_OBJECT( user_entry ),
"label", ( gpointer )label );
gtk_object_set_data( GTK_OBJECT( button ),
"user_entry", ( gpointer )user_entry );
char *pointer = ( char *)subscription.get_user( i );
if ( pointer == NULL || *pointer == '\0' )
GTK_TOGGLE_BUTTON( button )->active = FALSE;
else
{
GTK_TOGGLE_BUTTON( button )->active = TRUE;
gtk_widget_show( label );
gtk_widget_show( user_entry );
gtk_entry_set_text( GTK_ENTRY( user_entry ), pointer );
}
gtk_signal_connect( GTK_OBJECT( user_entry ), "changed",
GTK_SIGNAL_FUNC( user_entries_callback ), this );
// pass label
label = gtk_label_new( "password:" );
gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, FALSE, 0 );
// pass entry
GtkWidget *pass_entry = gtk_entry_new_with_max_length( 100 );
gtk_object_set_data( GTK_OBJECT( pass_entry ),
"position", ( gpointer ) i );
gtk_object_set_data( GTK_OBJECT( pass_entry ),
"label", ( gpointer ) label );
gtk_object_set_data( GTK_OBJECT( button ),
"pass_entry", ( gpointer )pass_entry );
pointer = ( char *)subscription.get_pass( i );
if ( pointer != NULL && *pointer != '\0' )
{
gtk_widget_show( label );
gtk_widget_show( pass_entry );
gtk_entry_set_text( GTK_ENTRY( pass_entry ), pointer );
}
gtk_box_pack_start( GTK_BOX( vbox ), pass_entry, FALSE, FALSE, 0 );
gtk_signal_connect( GTK_OBJECT( pass_entry ), "changed",
GTK_SIGNAL_FUNC( pass_entries_callback ), this );
return;
}
|