specify which child widget to be on top in GtkFixed?!



greetings,
I'm having trouble with GtkFixed and their children, how can I specify
which child widget to be on top. In the code snippet below no matter
were I create the TextEntry it always get drawn on top of the other
widgets! how can specify which child widget to be on top of the others
at run time / or at  compile time.
regards,
ferar

/***************************************************************************
*   Copyright (C) 2009 by ferar   *
*   ferar druid   *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
*   This program is distributed in the hope that it will be useful,       *
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*   GNU General Public License for more details.                          *
*                                                                         *
*   You should have received a copy of the GNU General Public License     *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
***************************************************************************/

#include <gtk/gtk.h>
#include <string>
using namespace std;
GtkWidget* fixedviewo = NULL;
GtkWidget* FocusEntry = NULL;
GtkWidget* next_cache_page = NULL;
GtkWidget* prev_cache_page = NULL;
gint x=5;
gint y=5;
gint x2=5;

gboolean OnLabelButtonPress ( GtkWidget       *widget,     
GdkEventButton  *event,     gpointer         user_data )
{

//     GList *children = gtk_container_get_children ( GTK_CONTAINER (
fixedviewo ) );
//
//     while ( children )
//     {
//         string typeo (g_type_name( GTK_WIDGET_TYPE( children->data ) ));
//         if(typeo == "GtkButton")
//         {
//             gint xx, yy;
//             gdk_window_get_origin(((GtkWidget*)( children->data
))->window,&xx,&yy);
//             const gchar* labelo = gtk_button_get_label ((GtkButton*)(
children->data )) ;
//             printf("Type: %s, Label is: %s\n",typeo.c_str(), labelo);
//         }
//
//         children = g_list_next ( children );
//     }
    x+=4;
    x2+=6;
    gtk_fixed_move ( GTK_FIXED ( fixedviewo ), next_cache_page, x++, y++ );
    gtk_fixed_move ( GTK_FIXED ( fixedviewo ), prev_cache_page, x2, y );
    return FALSE;
}

int
main ( int    argc,
       char **argv )
{
    /* Initialization */
    gtk_init ( &argc, &argv );

    GtkWidget* splash_widget = gtk_window_new ( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_position ( GTK_WINDOW ( splash_widget ),
GTK_WIN_POS_CENTER_ALWAYS );
    gtk_window_set_gravity ( GTK_WINDOW ( splash_widget ),
GDK_GRAVITY_CENTER );
    g_signal_connect ( G_OBJECT ( splash_widget ), "destroy", G_CALLBACK
( gtk_main_quit ), NULL );
    GtkWidget* vbox = gtk_vbox_new ( FALSE, 0 );
    gtk_container_add ( ( GtkContainer* ) splash_widget, vbox );
    GtkWidget* progress_spitout = gtk_button_new_with_label ( "move the
buttons up" );
    g_signal_connect ( ( gpointer ) progress_spitout, "pressed",
                       G_CALLBACK ( OnLabelButtonPress ),
                       NULL );
    fixedviewo = gtk_fixed_new ();
    gtk_widget_show ( fixedviewo );
    gtk_container_add ( GTK_CONTAINER ( vbox ), fixedviewo );

    FocusEntry = gtk_entry_new ();
    gtk_fixed_put ( GTK_FIXED ( fixedviewo ), FocusEntry, 10, 0 );

    prev_cache_page = gtk_button_new_with_label ( "GTK_STOCK_GO_BACK" );
    gtk_fixed_put ( GTK_FIXED ( fixedviewo ), prev_cache_page, 30, 0 );
//     gtk_widget_set_size_request ( prev_cache_page, 60, 26 );
    gtk_widget_show ( prev_cache_page );

    next_cache_page = gtk_button_new_from_stock ( GTK_STOCK_GO_FORWARD );
    gtk_fixed_put ( GTK_FIXED ( fixedviewo ), next_cache_page, 100, 0 );
//     gtk_widget_set_size_request ( next_cache_page, 60, 26 );
    gtk_widget_show ( next_cache_page );




    gtk_container_add ( GTK_CONTAINER ( vbox ), progress_spitout );

    gtk_widget_show_all ( splash_widget );

    gtk_main();

    return ( 0 );
}




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]