1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-27 01:57:52 +00:00
transmission/gtk/hig.c
Jordan Lee 879a2afcbd Update the copyright year in the source code comments.
The Berne Convention says that the copyright year is moot, so instead of adding another year to each file as in previous years, I've removed the year altogether from the source code comments in libtransmission, gtk, qt, utils, daemon, and cli.

Juliusz's copyright notice in tr-dht and Johannes' copyright notice in tr-lpd have been left alone; it didn't seem appropriate to modify them.
2011-01-19 13:48:47 +00:00

228 lines
6.6 KiB
C

/*
* This file Copyright (C) Mnemosyne LLC
*
* This file is licensed by the GPL version 2. Works owned by the
* Transmission project are granted a special exemption to clause 2(b)
* so that the bulk of its code can remain under the MIT license.
* This exemption does not extend to derived works not owned by
* the Transmission project.
*
* $Id$
*/
#include <gtk/gtk.h>
#include "hig.h"
GtkWidget*
hig_workarea_create( void )
{
GtkWidget * t = gtk_table_new( 1, 2, FALSE );
gtk_container_set_border_width( GTK_CONTAINER( t ), GUI_PAD_BIG );
gtk_table_set_col_spacing( GTK_TABLE( t ), 0, GUI_PAD_BIG );
gtk_table_set_row_spacings( GTK_TABLE( t ), GUI_PAD );
return t;
}
void
hig_workarea_add_section_divider( GtkWidget * t,
int * row )
{
GtkWidget * w = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
gtk_widget_set_size_request( w, 0u, 6u );
gtk_table_attach( GTK_TABLE( t ), w, 0, 2, *row, *row + 1, 0, 0, 0, 0 );
++ * row;
}
void
hig_workarea_add_section_title_widget( GtkWidget * t,
int * row,
GtkWidget * w )
{
gtk_table_attach( GTK_TABLE( t ), w, 0, 2, *row, *row + 1, ~0, 0, 0, 0 );
++ * row;
}
void
hig_workarea_add_section_title( GtkWidget * t,
int * row,
const char * section_title )
{
char buf[512];
GtkWidget * l;
g_snprintf( buf, sizeof( buf ), "<b>%s</b>", section_title );
l = gtk_label_new( buf );
gtk_misc_set_alignment( GTK_MISC( l ), 0.0f, 0.5f );
gtk_label_set_use_markup( GTK_LABEL( l ), TRUE );
hig_workarea_add_section_title_widget( t, row, l );
}
static GtkWidget*
rowNew( GtkWidget * w )
{
GtkWidget * a;
GtkWidget * h = gtk_hbox_new( FALSE, 0 );
/* spacer */
a = gtk_alignment_new( 0.0f, 0.0f, 0.0f, 0.0f );
gtk_widget_set_size_request( a, 18u, 0u );
gtk_box_pack_start( GTK_BOX( h ), a, FALSE, FALSE, 0 );
/* lhs widget */
if( GTK_IS_MISC( w ) )
gtk_misc_set_alignment( GTK_MISC( w ), 0.0f, 0.5f );
if( GTK_IS_LABEL( w ) )
gtk_label_set_use_markup( GTK_LABEL( w ), TRUE );
gtk_box_pack_start( GTK_BOX( h ), w, TRUE, TRUE, 0 );
return h;
}
void
hig_workarea_add_wide_control( GtkWidget * t,
int * row,
GtkWidget * w )
{
GtkWidget * r = rowNew( w );
gtk_table_attach( GTK_TABLE( t ), r, 0, 2, *row, *row + 1, GTK_FILL, 0, 0, 0 );
++ * row;
}
void
hig_workarea_add_wide_tall_control( GtkWidget * t,
int * row,
GtkWidget * w )
{
GtkWidget * r = rowNew( w );
gtk_table_attach( GTK_TABLE( t ), r, 0, 2, *row, *row + 1,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
0, 0 );
++ * row;
}
GtkWidget *
hig_workarea_add_wide_checkbutton( GtkWidget * t,
int * row,
const char * mnemonic_string,
gboolean is_active )
{
GtkWidget * w = gtk_check_button_new_with_mnemonic( mnemonic_string );
gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( w ), is_active );
hig_workarea_add_wide_control( t, row, w );
return w;
}
void
hig_workarea_add_label_w( GtkWidget * t,
int row,
GtkWidget * l )
{
GtkWidget * w = rowNew( l );
gtk_table_attach( GTK_TABLE( t ), w, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0 );
}
GtkWidget*
hig_workarea_add_label( GtkWidget * t,
int row,
const char * mnemonic_string )
{
GtkWidget * l = gtk_label_new_with_mnemonic( mnemonic_string );
hig_workarea_add_label_w( t, row, l );
return l;
}
static void
hig_workarea_add_tall_control( GtkWidget * t,
int row,
GtkWidget * control )
{
if( GTK_IS_MISC( control ) )
gtk_misc_set_alignment( GTK_MISC( control ), 0.0f, 0.5f );
gtk_table_attach( GTK_TABLE( t ), control,
1, 2, row, row + 1,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
0, 0 );
}
static void
hig_workarea_add_control( GtkWidget * t,
int row,
GtkWidget * control )
{
if( GTK_IS_MISC( control ) )
gtk_misc_set_alignment( GTK_MISC( control ), 0.0f, 0.5f );
gtk_table_attach( GTK_TABLE( t ), control,
1, 2, row, row + 1,
GTK_EXPAND | GTK_SHRINK | GTK_FILL, 0, 0, 0 );
}
void
hig_workarea_add_row_w( GtkWidget * t,
int * row,
GtkWidget * label,
GtkWidget * control,
GtkWidget * mnemonic )
{
hig_workarea_add_label_w( t, *row, label );
hig_workarea_add_control( t, *row, control );
if( GTK_IS_LABEL( label ) )
gtk_label_set_mnemonic_widget( GTK_LABEL( label ),
mnemonic ? mnemonic : control );
++ * row;
}
GtkWidget*
hig_workarea_add_row( GtkWidget * t,
int * row,
const char * mnemonic_string,
GtkWidget * control,
GtkWidget * mnemonic )
{
GtkWidget * l = gtk_label_new_with_mnemonic( mnemonic_string );
hig_workarea_add_row_w( t, row, l, control, mnemonic );
return l;
}
GtkWidget*
hig_workarea_add_tall_row( GtkWidget * table,
int * row,
const char * mnemonic_string,
GtkWidget * control,
GtkWidget * mnemonic )
{
GtkWidget * l = gtk_label_new_with_mnemonic( mnemonic_string );
GtkWidget * h = gtk_hbox_new( FALSE, 0 );
GtkWidget * v = gtk_vbox_new( FALSE, 0 );
gtk_box_pack_start( GTK_BOX( h ), l, FALSE, FALSE, 0 );
gtk_box_pack_start( GTK_BOX( v ), h, FALSE, FALSE, GUI_PAD_SMALL );
hig_workarea_add_label_w( table, *row, v );
hig_workarea_add_tall_control( table, *row, control );
if( GTK_IS_LABEL( l ) )
gtk_label_set_mnemonic_widget( GTK_LABEL( l ),
mnemonic ? mnemonic : control );
++ * row;
return l;
}
void
hig_workarea_finish( GtkWidget * t,
int * row )
{
gtk_table_resize( GTK_TABLE( t ), *row, 2 );
}