Changeset 5007 for trunk/gtk/hig.c


Ignore:
Timestamp:
Feb 12, 2008, 4:56:44 PM (15 years ago)
Author:
charles
Message:

(gtk) HIG window layout

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/hig.c

    r4927 r5007  
    1717hig_workarea_create (void)
    1818{
    19         GtkWidget * t = gtk_table_new (4, 100, FALSE);
    20         gtk_table_set_row_spacings (GTK_TABLE(t), 6);
    21         gtk_container_set_border_width (GTK_CONTAINER(t), 12);
    22         return t;
     19    GtkWidget * t = gtk_table_new( 1, 2, FALSE );
     20    gtk_container_set_border_width( GTK_CONTAINER( t ), 12 );
     21    gtk_table_set_col_spacings( GTK_TABLE( t ), 12 );
     22    gtk_table_set_row_spacings( GTK_TABLE( t ), 6 );
     23    return t;
    2324}
    2425
    2526void
    26 hig_workarea_add_section_divider  (GtkWidget   * table,
    27                                    int         * row)
     27hig_workarea_add_section_divider( GtkWidget   * t,
     28                                  int         * row )
    2829{
    29         GtkWidget * w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
    30         gtk_widget_set_size_request (w, 0u, 6u);
    31         gtk_table_attach (GTK_TABLE(table), w, 0, 4, *row, *row+1, 0, 0, 0, 0);
    32         ++*row;
     30    GtkWidget * w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
     31    gtk_widget_set_size_request( w, 0u, 6u );
     32    gtk_table_attach( GTK_TABLE( t ), w, 0, 2, *row, *row+1, 0, 0, 0, 0 );
     33    ++*row;
    3334}
    3435
    3536void
    36 hig_workarea_add_section_title    (GtkWidget   * table,
    37                                    int         * row,
    38                                    const char  * section_title)
     37hig_workarea_add_section_title( GtkWidget   * t,
     38                                int         * row,
     39                                const char  * section_title )
    3940{
    40         char buf[512];
    41         GtkWidget * l;
     41    char buf[512];
     42    GtkWidget * l;
    4243
    43         g_snprintf (buf, sizeof(buf), "<b>%s</b>", section_title);
    44         l = gtk_label_new (buf);
    45         gtk_misc_set_alignment (GTK_MISC(l), 0.0f, 0.5f);
    46         gtk_label_set_use_markup (GTK_LABEL(l), TRUE);
    47         gtk_table_attach (GTK_TABLE(table), l, 0, 4, *row, *row+1, GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
    48         ++*row;
     44    g_snprintf( buf, sizeof(buf), "<b>%s</b>", section_title );
     45    l = gtk_label_new( buf );
     46    gtk_misc_set_alignment( GTK_MISC( l ), 0.0f, 0.5f );
     47    gtk_label_set_use_markup( GTK_LABEL( l ), TRUE );
     48    gtk_table_attach( GTK_TABLE( t ), l, 0, 2, *row, *row+1, GTK_FILL, 0, 0, 0 );
     49    ++*row;
     50}
     51
     52static GtkWidget*
     53control_row_new( GtkWidget * w )
     54{
     55    GtkWidget * a;
     56    GtkWidget * h = gtk_hbox_new( FALSE, 0 );
     57
     58    /* spacer */
     59    a = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
     60    gtk_widget_set_size_request( a, 18u, 0u );
     61    gtk_box_pack_start( GTK_BOX( h ), a, FALSE, FALSE, 0 );
     62
     63    /* lhs widget */
     64    if( GTK_IS_MISC( w ) )
     65        gtk_misc_set_alignment( GTK_MISC( w ), 0.0f, 0.5f );
     66    if( GTK_IS_LABEL( w ) )
     67        gtk_label_set_use_markup( GTK_LABEL( w ), TRUE );
     68    gtk_box_pack_start( GTK_BOX( h ), w, TRUE, TRUE, 0 );
     69
     70    return h;
    4971}
    5072
    5173void
    52 hig_workarea_add_section_spacer  (GtkWidget   * table,
    53                                   int          row,
    54                                   int           items_in_section)
     74hig_workarea_add_wide_control( GtkWidget * t,
     75                               int       * row,
     76                               GtkWidget * w )
    5577{
    56         GtkWidget * w;
     78    GtkWidget * r = control_row_new( w );
     79    gtk_table_attach( GTK_TABLE( t ), r, 0, 2, *row, *row+1, GTK_FILL, 0, 0, 0 );
     80    ++*row;
     81}
    5782
    58         /* spacer to move the fields a little to the right of the name header */
    59         w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
    60         gtk_widget_set_size_request (w, 12u, 0u);
    61         gtk_table_attach (GTK_TABLE(table), w, 0, 1, row, row+items_in_section, 0, 0, 0, 0);
    62 
    63         /* spacer between the controls and their labels */
    64         w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
    65         gtk_widget_set_size_request (w, 12u, 0u);
    66         gtk_table_attach (GTK_TABLE(table), w, 2, 3, row, row+items_in_section, 0, 0, 0, 0);
     83GtkWidget *
     84hig_workarea_add_wide_checkbutton( GtkWidget   * t,
     85                                   int         * row,
     86                                   const char  * mnemonic_string,
     87                                   gboolean      is_active)
     88{
     89    GtkWidget * w = gtk_check_button_new_with_mnemonic( mnemonic_string );
     90    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( w ), is_active );
     91    hig_workarea_add_wide_control( t, row, w);
     92    return w;
    6793}
    6894
    6995void
    70 hig_workarea_add_wide_control (GtkWidget * table,
    71                                int       * row,
    72                                GtkWidget * w)
     96hig_workarea_add_label_w( GtkWidget   * t,
     97                          int          row,
     98                          GtkWidget   * l )
    7399{
    74   gtk_table_attach (GTK_TABLE(table), w,
    75                     1, 4, *row, *row+1,
    76                     GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
    77   ++*row;
     100    GtkWidget * w = control_row_new( l );
     101    gtk_table_attach( GTK_TABLE( t ), w, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0 );
     102}
     103
     104GtkWidget*
     105hig_workarea_add_label( GtkWidget   * t,
     106                        int           row,
     107                        const char  * mnemonic_string )
     108{
     109    GtkWidget * l = gtk_label_new_with_mnemonic( mnemonic_string );
     110    hig_workarea_add_label_w( t, row, l );
     111    return l;
    78112}
    79113
    80114void
    81 hig_workarea_add_double_control (GtkWidget * table,
    82                                int       * row,
    83                                GtkWidget * wl,
    84                                GtkWidget * wr)
     115hig_workarea_add_control( GtkWidget   * t,
     116                          int           row,
     117                          GtkWidget   * control )
    85118{
    86   gtk_table_attach (GTK_TABLE(table), wl,
    87                     1, 2, *row, *row+1,
    88                     GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
     119    if ( GTK_IS_MISC( control ) )
     120        gtk_misc_set_alignment( GTK_MISC(control), 0.0f, 0.5f );
    89121
    90   gtk_table_attach (GTK_TABLE(table), wr,
    91                     3, 4, *row, *row+1,
    92                     GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
    93 
    94   ++*row;
    95 }
    96 
    97 GtkWidget *
    98 hig_workarea_add_wide_checkbutton   (GtkWidget   * table,
    99                                      int         * row,
    100                                      const char  * mnemonic_string,
    101                                      gboolean      is_active)
    102 {
    103   GtkWidget * w = gtk_check_button_new_with_mnemonic (mnemonic_string);
    104   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), is_active);
    105   hig_workarea_add_wide_control (table, row, w);
    106   return w;
     122    gtk_table_attach( GTK_TABLE( t ), control,
     123                      1, 2, row, row+1,
     124                      GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0 );
    107125}
    108126
    109127void
    110 hig_workarea_add_label_w (GtkWidget   * table,
    111                           int           row,
    112                           GtkWidget   * l)
     128hig_workarea_add_row_w( GtkWidget  * t,
     129                        int        * row,
     130                        GtkWidget  * label,
     131                        GtkWidget  * control,
     132                        GtkWidget  * mnemonic )
    113133{
    114   if (GTK_IS_MISC(l))
    115     gtk_misc_set_alignment (GTK_MISC(l), 0.0f, 0.5f);
    116   if (GTK_IS_LABEL(l))
    117     gtk_label_set_use_markup (GTK_LABEL(l), TRUE);
    118   gtk_table_attach (GTK_TABLE(table), l, 1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
    119 }
    120 
    121 GtkWidget*
    122 hig_workarea_add_label   (GtkWidget   * table,
    123                           int           row,
    124                           const char  * mnemonic_string)
    125 {
    126   GtkWidget * l = gtk_label_new_with_mnemonic (mnemonic_string);
    127   hig_workarea_add_label_w (table, row, l);
    128   return l;
    129 }
    130 
    131 void
    132 hig_workarea_add_control (GtkWidget   * table,
    133                           int           row,
    134                           GtkWidget   * control)
    135 {
    136   if (GTK_IS_MISC(control))
    137     gtk_misc_set_alignment (GTK_MISC(control), 0.0f, 0.5f);
    138 
    139   gtk_table_attach (GTK_TABLE(table), control,
    140                     3, 4, row, row+1,
    141                     GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0);
    142 }
    143 
    144 void
    145 hig_workarea_add_row_w (GtkWidget * table,
    146                        int        * row,
    147                        GtkWidget  * label,
    148                        GtkWidget  * control,
    149                        GtkWidget  * mnemonic)
    150 {
    151   hig_workarea_add_label_w (table, *row, label);
    152   hig_workarea_add_control (table, *row, control);
    153   if (GTK_IS_LABEL(label))
    154     gtk_label_set_mnemonic_widget (GTK_LABEL(label),
    155                                    mnemonic ? mnemonic : control);
     134   hig_workarea_add_label_w( t, *row, label );
     135   hig_workarea_add_control( t, *row, control );
     136   if ( GTK_IS_LABEL( label ) )
     137      gtk_label_set_mnemonic_widget( GTK_LABEL( label ),
     138                                      mnemonic ? mnemonic : control );
    156139  ++*row;
    157140}
    158141
    159142GtkWidget*
    160 hig_workarea_add_row  (GtkWidget   * table,
    161                        int         * row,
    162                        const char  * mnemonic_string,
    163                        GtkWidget   * control,
    164                        GtkWidget   * mnemonic)
     143hig_workarea_add_row( GtkWidget   * t,
     144                      int         * row,
     145                      const char  * mnemonic_string,
     146                      GtkWidget   * control,
     147                      GtkWidget   * mnemonic )
    165148{
    166   GtkWidget * l = gtk_label_new_with_mnemonic (mnemonic_string);
    167   hig_workarea_add_row_w (table, row, l, control, mnemonic);
    168   return l;
     149    GtkWidget * l = gtk_label_new_with_mnemonic( mnemonic_string );
     150    hig_workarea_add_row_w( t, row, l, control, mnemonic );
     151    return l;
    169152}
    170153
    171154void
    172 hig_workarea_finish (GtkWidget   * table,
    173                         int         * row)
     155hig_workarea_finish( GtkWidget   * t,
     156                     int         * row)
    174157{
    175   GtkWidget * w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
    176   gtk_widget_set_size_request (w, 0u, 6u);
    177   gtk_table_attach_defaults (GTK_TABLE(table), w, 0, 4, *row, *row+1);
     158    GtkWidget * w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
     159    gtk_widget_set_size_request( w, 0u, 6u );
     160    gtk_table_attach_defaults( GTK_TABLE( t ), w, 0, 4, *row, *row+1 );
     161    ++*row;
     162    gtk_table_resize( GTK_TABLE( t ), *row, 2 );
    178163}
    179164
     
    183168                             const char       * secondary)
    184169{
    185   gtk_message_dialog_set_markup (dialog, primary);
    186   gtk_message_dialog_format_secondary_text (dialog, "%s", secondary);
     170    gtk_message_dialog_set_markup (dialog, primary);
     171    gtk_message_dialog_format_secondary_text (dialog, "%s", secondary);
    187172}
Note: See TracChangeset for help on using the changeset viewer.