Problems mapping a specific instance of a widget to a style described in an rc file



My problem is that I would like to map a specific instance of a widget to a
style described within an rc file.  I have read the docs on widget style and
naming and am still a little confused.  What I need to do is create custom
buttons within my app based on specific styles described in the gtkrc file.
I am able to describe a default value using the > class "GtkButton" which
works. However, I would like to be able to assign any button I create to any
style listed within the rc file.

 

Here is the listing from my code and sample rc file:

 

#include <gtk/gtk.h>

 

int 

main(int argc, char* argv[])

{

    GtkWidget*  window;

    GtkWidget*  buttons[2];

    GtkWidget*  table;

    int         i;

 

    gtk_init(&argc, &argv);  

    gtk_rc_parse( "gtkrc" );

    table = gtk_table_new(2, 1, FALSE);

 

    for(i = 0; i < 2; i++)

    {

        buttons[i] = gtk_button_new_with_label("Button1");

        gtk_table_attach_defaults (GTK_TABLE(table), buttons[i], i, i+1,
0,1);

    }

    /* Set the widget's name here */

    gtk_widget_set_name(buttons[1], "Custom-Button");

    printf("Widget Name is: %s\n", gtk_widget_get_name(buttons[1]) );

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_container_add(GTK_CONTAINER(window), table);

    gtk_container_set_border_width(GTK_CONTAINER(window), 160);

    gtk_widget_show_all(window);

    gtk_main();

    return 0;

}

 

 

// rc file:

 

style "Default-Button-Style"

{ 

  fg[PRELIGHT] =    { 0,    1.0,    1.0     }

  bg[PRELIGHT] =    { 0,    0,      1.0     }

  bg[ACTIVE] =      { 1.0,  0,      0       }

  fg[ACTIVE] =      { 0,    1.0,    0       }

  bg[NORMAL] =      { 1.0,  1.0,    0       }

  fg[NORMAL] =      { .99,  0,      .99     }

  bg[INSENSITIVE] = { 1.0,  1.0,    1.0     }

  fg[INSENSITIVE] = { 1.0,  0,      1.0     }

}

 

style "Custom-Button-Style"

{

  fg[PRELIGHT] =    { 0.5,  0.5,    0.5     }

  bg[PRELIGHT] =    { 0.2,  .2,     .2      }

  bg[ACTIVE] =      { 1,    1,      1       }

  fg[ACTIVE] =      { 1,    1,      1       }

  bg[NORMAL] =      { 0,    0,      0       }

  fg[NORMAL] =      { .5,   .5,     .5      }

  bg[INSENSITIVE] = { .2,   .2,     .2      }

  fg[INSENSITIVE] = { 1.0,   1.0,   1.0     }

}

 

 

class "GtkButton"       style "Default-Button-Style"

widget "Custom-Button"  style "Custom-Button-Style"

 

 

Thanks,

Bill Sousan

 




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