mirror of https://github.com/mpv-player/mpv
181 lines
5.0 KiB
C
181 lines
5.0 KiB
C
|
|
#include <gdk/gdkkeysyms.h>
|
|
#include <gtk/gtk.h>
|
|
|
|
#include "gtk_common.h"
|
|
|
|
void WidgetDestroy( GtkWidget * widget,GtkWidget ** widget_pointer )
|
|
{
|
|
if ( !widget_pointer ) return;
|
|
gtk_widget_hide( *widget_pointer );
|
|
gtk_widget_destroy( *widget_pointer );
|
|
*widget_pointer=NULL;
|
|
}
|
|
|
|
GtkWidget * AddDialogFrame( GtkWidget * parent )
|
|
{
|
|
GtkWidget * frame;
|
|
frame=AddFrame( NULL,GTK_SHADOW_IN,parent,1 );
|
|
gtk_container_set_border_width( GTK_CONTAINER( frame ),1 );
|
|
frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 );
|
|
frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,frame,1 );
|
|
frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 );
|
|
return frame;
|
|
}
|
|
|
|
GtkWidget * AddFrame( const char * title,int type,GtkWidget * parent,int add )
|
|
{
|
|
GtkWidget * frame = NULL;
|
|
frame=gtk_frame_new( title );
|
|
gtk_widget_set_name( frame,"frame" );
|
|
gtk_widget_show( frame );
|
|
gtk_frame_set_shadow_type( GTK_FRAME( frame ),type );
|
|
if ( !parent ) return frame;
|
|
if ( add ) gtk_container_add( GTK_CONTAINER( parent ),frame );
|
|
else gtk_box_pack_start( GTK_BOX( parent ),frame,FALSE,FALSE,0 );
|
|
return frame;
|
|
}
|
|
|
|
GtkWidget * AddLabel( const char * title,GtkWidget * parent )
|
|
{
|
|
GtkWidget * label;
|
|
label=gtk_label_new( title );
|
|
gtk_widget_set_name( label,"label" );
|
|
gtk_widget_show( label );
|
|
if ( parent ) gtk_box_pack_start( GTK_BOX( parent ),label,FALSE,FALSE,0 );
|
|
gtk_misc_set_alignment( GTK_MISC( label ),0,0.5 );
|
|
gtk_misc_set_padding( GTK_MISC( label ),4,0 );
|
|
return label;
|
|
}
|
|
|
|
GtkWidget * AddVBox( GtkWidget * parent,int type )
|
|
{
|
|
GtkWidget * vbox;
|
|
vbox=gtk_vbox_new( FALSE,0 );
|
|
gtk_widget_set_name( vbox,"vbox" );
|
|
gtk_widget_show( vbox );
|
|
if ( parent )
|
|
{
|
|
if ( type ) gtk_box_pack_start( GTK_BOX( parent ),vbox,FALSE,FALSE,0 );
|
|
else gtk_container_add( GTK_CONTAINER( parent ),vbox );
|
|
}
|
|
return vbox;
|
|
}
|
|
|
|
GtkWidget * AddHBox( GtkWidget * parent,int type )
|
|
{
|
|
GtkWidget * hbox;
|
|
hbox=gtk_hbox_new( FALSE,0 );
|
|
gtk_widget_set_name( hbox,"hbox" );
|
|
gtk_widget_show( hbox );
|
|
if ( parent )
|
|
{
|
|
if ( type ) gtk_box_pack_start( GTK_BOX( parent ),hbox,FALSE,FALSE,0 );
|
|
else gtk_container_add( GTK_CONTAINER( parent ),hbox );
|
|
}
|
|
return hbox;
|
|
}
|
|
|
|
GtkWidget * AddCheckButton( const char * title, GtkWidget * parent )
|
|
{
|
|
GtkWidget * CB;
|
|
CB=gtk_check_button_new_with_label( title );
|
|
gtk_widget_set_name( CB,"CB" );
|
|
gtk_widget_show( CB );
|
|
gtk_box_pack_start( GTK_BOX( parent ),CB,FALSE,FALSE,0 );
|
|
return CB;
|
|
}
|
|
|
|
GtkWidget * AddRadioButton( const char * title,GSList ** group,GtkWidget * parent )
|
|
{
|
|
GtkWidget * RB;
|
|
RB=gtk_radio_button_new_with_label( *group,title );
|
|
*group=gtk_radio_button_group( GTK_RADIO_BUTTON( RB ) );
|
|
gtk_widget_set_name( RB,"RB" );
|
|
gtk_widget_show( RB );
|
|
gtk_box_pack_start( GTK_BOX( parent ),RB,FALSE,FALSE,0 );
|
|
return RB;
|
|
}
|
|
|
|
GtkWidget * AddSpinButton( const char * title,GtkAdjustment * adj,GtkWidget * parent )
|
|
{
|
|
GtkWidget * SB;
|
|
GtkWidget * label;
|
|
label=gtk_label_new( title );
|
|
gtk_misc_set_alignment( GTK_MISC( label ),0,0.5 );
|
|
gtk_box_pack_start( GTK_BOX( parent ),label,FALSE,FALSE,0 );
|
|
gtk_widget_show( label );
|
|
SB=gtk_spin_button_new( adj,0,0 );
|
|
gtk_widget_set_name( SB,"SB" );
|
|
gtk_box_pack_start( GTK_BOX( parent ),SB,FALSE,FALSE,0 );
|
|
gtk_widget_show( SB );
|
|
return SB;
|
|
}
|
|
|
|
GtkWidget * AddButton( const char * title,GtkWidget * parent )
|
|
{
|
|
GtkWidget * B;
|
|
B=gtk_button_new_with_label( title );
|
|
gtk_widget_set_name( B,"B" );
|
|
gtk_widget_show( B );
|
|
gtk_container_add( GTK_CONTAINER( parent ),B );
|
|
return B;
|
|
}
|
|
|
|
GtkWidget * AddHSeparator( GtkWidget * parent )
|
|
{
|
|
GtkWidget * hseparator;
|
|
hseparator=gtk_hseparator_new();
|
|
gtk_widget_set_name( hseparator,"hseparator1" );
|
|
gtk_widget_show( hseparator );
|
|
gtk_box_pack_start( GTK_BOX( parent ),hseparator,FALSE,FALSE,0 );
|
|
gtk_widget_set_usize( hseparator,-2,6 );
|
|
return hseparator;
|
|
}
|
|
|
|
GtkWidget * AddHButtonBox( GtkWidget * parent )
|
|
{
|
|
GtkWidget * hbuttonbox;
|
|
hbuttonbox=gtk_hbutton_box_new();
|
|
gtk_widget_set_name( hbuttonbox,"hbuttonbox" );
|
|
gtk_widget_show( hbuttonbox );
|
|
gtk_box_pack_start( GTK_BOX( parent ),hbuttonbox,FALSE,FALSE,0 );
|
|
gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox ),85,20 );
|
|
return hbuttonbox;
|
|
}
|
|
|
|
GtkWidget * AddHScaler( GtkAdjustment * adj,GtkWidget * parent,int digit )
|
|
{
|
|
GtkWidget * HS;
|
|
HS=gtk_hscale_new( adj );
|
|
gtk_widget_set_name( HS,"HS" );
|
|
gtk_widget_show( HS );
|
|
if ( parent ) gtk_box_pack_start( GTK_BOX( parent ),HS,TRUE,TRUE,0 );
|
|
gtk_scale_set_value_pos( GTK_SCALE( HS ),GTK_POS_RIGHT );
|
|
gtk_scale_set_digits( GTK_SCALE( HS ),digit );
|
|
return HS;
|
|
}
|
|
|
|
GtkWidget * AddVScaler( GtkAdjustment * adj,GtkWidget * parent,int digit )
|
|
{
|
|
GtkWidget * VS;
|
|
VS=gtk_vscale_new( adj );
|
|
gtk_widget_set_name( VS,"VS" );
|
|
gtk_widget_show( VS );
|
|
if ( parent ) gtk_box_pack_start( GTK_BOX( parent ),VS,TRUE,TRUE,0 );
|
|
// gtk_scale_set_value_pos( GTK_SCALE( VS ),GTK_POS_RIGHT );
|
|
if ( digit == -1 ) gtk_scale_set_draw_value( GTK_SCALE( VS ),FALSE );
|
|
else gtk_scale_set_digits( GTK_SCALE( VS ),digit );
|
|
return VS;
|
|
}
|
|
|
|
GtkWidget * AddComboBox( GtkWidget * parent )
|
|
{
|
|
GtkWidget * CB;
|
|
CB=gtk_combo_new();
|
|
gtk_widget_set_name( CB,"CB" );
|
|
gtk_widget_show( CB );
|
|
if ( parent ) gtk_box_pack_start( GTK_BOX( parent ),CB,TRUE,TRUE,0 );
|
|
return CB;
|
|
}
|