Problems mapping a specific instance of a widget to a style	described in an rc file
- From: "Bill Sousan" <BillS techsi com>
- To: <gtk-app-devel-list gnome org>
- Subject: Problems mapping a specific instance of a widget to a style	described in an rc file
- Date: Thu, 13 Oct 2005 09:11:16 -0500
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]