#include <gtk/gtk.h>
using namespace std;
struct struktura
{
GtkWidget * sokno;
GtkWidget * svbox;
GtkWidget * start;
GtkWidget * zasady;
GtkWidget * statystyki;
GtkWidget * ogrze;
GtkWidget * wwyjdz;
GtkWidget * hbox;
GtkWidget * trudny;
GtkWidget * latwy;
GtkWidget * fixed2;
GtkWidget * poletxt;
GtkWidget * etgr;
GtkWidget * wprowadz;
GtkWidget * etwyb;
GtkWidget * sep;
GtkWidget * ramka;
GtkWidget * wyniklab;
GtkWidget * powrot;
GtkWidget * wynik;
GtkWidget * etykieta;
GtkWidget * kontenerx;
GtkWidget * fixlab;
GtkWidget * graj;
int kont;
int czystart;
const gchar * wczyt;
const gchar * tab[ 10 ];
int liczbazm;
bool sprawdzdane;
};
void rysujmenu( GtkWidget * przycisk, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
gtk_widget_set_size_request( sss->svbox, 245, 245 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->start, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->zasady, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->statystyki, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->ogrze, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->wwyjdz, TRUE, TRUE, 2 );
gtk_widget_show_all( sss->svbox );
}
void pokazmenu( GtkWidget * przycisk, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
gtk_widget_hide( sss->fixed2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->start, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->zasady, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->statystyki, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->ogrze, TRUE, TRUE, 2 );
gtk_box_pack_start( GTK_BOX( sss->svbox ), sss->wwyjdz, TRUE, TRUE, 2 );
gtk_widget_show_all( sss->svbox );
}
void wybierzpoziom( GtkWidget * przycisk, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
gtk_widget_hide( sss->svbox );
sss->czystart = 1;
gtk_fixed_put( GTK_FIXED( sss->hbox ), sss->etwyb, 10, 35 );
gtk_fixed_put( GTK_FIXED( sss->hbox ), sss->trudny, 10, 100 );
gtk_fixed_put( GTK_FIXED( sss->hbox ), sss->latwy, 150, 100 );
gtk_widget_show_all( sss->hbox );
}
void rysujgra( GtkWidget * widget, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
gtk_widget_hide( sss->hbox );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->wprowadz, 174, 10 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->powrot, 2, 210 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->etgr, 10, 10 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->wynik, 213, 214 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->wyniklab, 113, 214 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->poletxt, 125, 10 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->sep, 0, 30 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->ramka, 0, 65 );
gtk_fixed_put( GTK_FIXED( sss->fixed2 ), sss->wprowadz, 174, 10 );
gtk_fixed_put( GTK_FIXED( sss->fixlab ), sss->etykieta, 10, 10 );
gtk_fixed_put( GTK_FIXED( sss->fixlab ), sss->graj, 4, 2 );
gtk_widget_show_all( sss->fixed2 );
}
void pobierz( GtkWidget * przycisk, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
gtk_widget_hide( sss->graj );
const gchar * zzz = "";
const gchar * nic = "nic";
const gchar * zle = "zle";
const gchar * tr = "true";
const gchar * fa = "false";
const gchar * tab[ 10 ] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
if( !g_strcmp0( sss->wczyt, tab[ 0 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 1 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 2 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 3 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 4 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 5 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 6 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 7 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 8 ] ) ||
!g_strcmp0( sss->wczyt, tab[ 9 ] ) ||
!g_strcmp0( sss->wczyt, zzz ) )
{
if( !g_strcmp0( sss->wczyt, tab[ 0 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 0 ] );
sss->liczbazm = 1;
}
if( !g_strcmp0( sss->wczyt, tab[ 1 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 1 ] );
sss->liczbazm = 2;
}
if( !g_strcmp0( sss->wczyt, tab[ 2 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 2 ] );
sss->liczbazm = 3;
}
if( !g_strcmp0( sss->wczyt, tab[ 3 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 3 ] );
sss->liczbazm = 4;
}
if( !g_strcmp0( sss->wczyt, tab[ 4 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 4 ] );
sss->liczbazm = 5;
}
if( !g_strcmp0( sss->wczyt, tab[ 5 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 5 ] );
sss->liczbazm = 6;
}
if( !g_strcmp0( sss->wczyt, tab[ 6 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 6 ] );
sss->liczbazm = 7;
}
if( !g_strcmp0( sss->wczyt, tab[ 7 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 7 ] );
sss->liczbazm = 8;
}
if( !g_strcmp0( sss->wczyt, tab[ 8 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 8 ] );
sss->liczbazm = 9;
}
if( !g_strcmp0( sss->wczyt, tab[ 9 ] ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), sss->tab[ 9 ] );
sss->liczbazm = 10;
}
sss->sprawdzdane = true;
if( !g_strcmp0( sss->wczyt, zzz ) )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), nic );
sss->sprawdzdane = false;
}
}
else
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), zle );
sss->sprawdzdane = false;
}
gtk_entry_set_text( GTK_ENTRY( sss->poletxt ), zzz );
sss->wczyt = gtk_entry_get_text( GTK_ENTRY( sss->poletxt ) );
}
void gtrudny( GtkWidget * przycisk, gpointer dane )
{
struct struktura * sss;
sss =( struct struktura * ) dane;
const gchar * tr = "true";
const gchar * fa = "false";
gtk_widget_hide( sss->graj );
const gchar * zm[ 3 ] = { "1", "2", "3" };
g_signal_connect( G_OBJECT( sss->wprowadz ), "clicked", G_CALLBACK( pobierz ), sss );
g_print( "Wartość %d\n", sss->sprawdzdane );
if( sss->sprawdzdane == true )
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), tr );
g_print( "aaWartość %d\n", sss->sprawdzdane );
}
else
{
gtk_label_set_text( GTK_LABEL( sss->etykieta ), fa );
g_print( "bbWartość %d\n", sss->sprawdzdane );
}
}
int main( int argc, char * argv[] )
{
struct struktura sss;
GtkWidget * okno;
GtkWidget * vbox;
GtkWidget * pstart;
GtkWidget * pzasady;
GtkWidget * pstatystyki;
GtkWidget * pogrze;
GtkWidget * wyjdz;
GtkWidget * pokaz;
GtkWidget * phboxwp;
GtkWidget * ptrudny;
GtkWidget * platwy;
GtkWidget * kontener2;
GtkWidget * kontener;
GtkWidget * etwybx;
GtkWidget * kontener3;
GtkWidget * etgrx;
GtkWidget * ramkax;
GtkWidget * sepx;
GtkWidget * wyniklabx;
GtkWidget * entryx;
GtkWidget * etx;
GtkWidget * wynikx;
GtkWidget * fix2;
GtkWidget * wprowx;
GtkWidget * fixlabx;
GtkWidget * grajx;
gtk_init( & argc, & argv );
sss.sokno = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_window_set_position( GTK_WINDOW( sss.sokno ), GTK_WIN_POS_CENTER );
gtk_window_set_default_size( GTK_WINDOW( sss.sokno ), 250, 250 );
gtk_window_set_title( GTK_WINDOW( sss.sokno ), "Gra 1.0" );
gtk_container_set_border_width( GTK_CONTAINER( sss.sokno ), 5 );
gtk_window_set_opacity( GTK_WINDOW( sss.sokno ), 1 );
sss.tab = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
ptrudny = gtk_button_new_with_label( "Trudny" );
platwy = gtk_button_new_with_label( "Łatwy" );
sss.trudny = ptrudny;
sss.latwy = platwy;
sss.powrot = gtk_button_new_with_label( "Powrót do menu" );
sss.czystart = 0;
pstart = gtk_button_new_with_label( "Start" );
pzasady = gtk_button_new_with_label( "Zasady" );
pstatystyki = gtk_button_new_with_label( "Statystyki" );
pogrze = gtk_button_new_with_label( "O grze" );
wyjdz = gtk_button_new_with_label( "Wyjdź" );
sss.start = pstart;
sss.zasady = pzasady;
sss.statystyki = pstatystyki;
sss.ogrze = pogrze;
sss.wwyjdz = wyjdz;
sss.sprawdzdane = false;
kontener = gtk_fixed_new();
gtk_container_add( GTK_CONTAINER( sss.sokno ), kontener );
sss.kontenerx = kontener;
gtk_widget_set_size_request( sss.kontenerx, 245, 245 );
kontener2 = gtk_vbox_new( FALSE, 1 );
gtk_container_add( GTK_CONTAINER( kontener ), kontener2 );
sss.svbox = kontener2;
fix2 = gtk_fixed_new();
gtk_container_add( GTK_CONTAINER( sss.kontenerx ), fix2 );
sss.fixed2 = fix2;
char * txt = "<span fgcolor='#6666CC'><span font='14'>Wybierz poziom trudności:</span></span>";
etwybx = gtk_label_new( txt );
gtk_label_set_markup( GTK_LABEL( etwybx ), txt );
sss.etwyb = etwybx;
kontener3 = gtk_fixed_new();
gtk_container_add( GTK_CONTAINER( sss.kontenerx ), kontener3 );
sss.hbox = kontener3;
gtk_widget_set_size_request( sss.trudny, 85, 35 );
gtk_widget_set_size_request( sss.latwy, 85, 35 );
char * txt22 = "<span fgcolor='#6666CC'><span font='14'>Podaj liczbę:</span></span>";
char * txt2 = "<span fgcolor='#191970'><span font='11'>Aktualny wynik:</span></span>";
char * txt4 = "teezstthhhh ";
char * txt3 = "<span fgcolor='#191970'><span font='11'>100</span></span>";
etgrx = gtk_label_new( txt22 );
gtk_label_set_markup( GTK_LABEL( etgrx ), txt22 );
sss.etgr = etgrx;
wynikx = gtk_label_new( txt3 );
gtk_label_set_markup( GTK_LABEL( wynikx ), txt3 );
sss.wynik = wynikx;
wyniklabx = gtk_label_new( txt2 );
gtk_label_set_markup( GTK_LABEL( wyniklabx ), txt2 );
sss.wyniklab = wyniklabx;
entryx = gtk_entry_new();
gtk_widget_set_size_request( entryx, 40, 25 );
sss.poletxt = entryx;
sepx = gtk_hseparator_new();
gtk_widget_set_size_request( sepx, 237, 42.5 );
sss.sep = sepx;
ramkax = gtk_frame_new( "Stan rywalizacji:" );
gtk_frame_set_shadow_type( GTK_FRAME( ramkax ), GTK_SHADOW_ETCHED_OUT );
gtk_widget_set_size_request( ramkax, 237, 135 );
sss.ramka = ramkax;
wprowx = gtk_button_new_with_label( "OK" );
gtk_widget_set_size_request( wprowx, 55, 26.9 );
sss.wprowadz = wprowx;
fixlabx = gtk_fixed_new();
gtk_container_add( GTK_CONTAINER( sss.ramka ), fixlabx );
sss.fixlab = fixlabx;
etx = gtk_label_new( txt4 );
sss.etykieta = etx;
grajx = gtk_button_new_with_label( "Kliknij, aby zacząć!" );
gtk_widget_set_size_request( grajx, 226, 112 );
sss.graj = grajx;
if( sss.czystart == 0 )
{
rysujmenu( NULL, & sss );
}
g_signal_connect( G_OBJECT( sss.graj ), "clicked", G_CALLBACK( gtrudny ), & sss );
g_signal_connect( G_OBJECT( sss.powrot ), "clicked", G_CALLBACK( pokazmenu ), & sss );
g_signal_connect( G_OBJECT( sss.trudny ), "clicked", G_CALLBACK( rysujgra ), & sss );
g_signal_connect( G_OBJECT( sss.start ), "clicked", G_CALLBACK( wybierzpoziom ), & sss );
g_signal_connect( G_OBJECT( wyjdz ), "clicked", G_CALLBACK( gtk_main_quit ), NULL );
g_signal_connect( G_OBJECT( sss.sokno ), "destroy", G_CALLBACK( gtk_main_quit ), NULL );
gtk_widget_show_all( sss.sokno );
gtk_main();
return 0;
}