コード例 #1
0
ファイル: spinbutt.cpp プロジェクト: 3v1n0/wxWidgets
bool wxSpinButton::Create(wxWindow *parent,
                          wxWindowID id,
                          const wxPoint& pos,
                          const wxSize& size,
                          long style,
                          const wxString& name)
{
    if (!PreCreation(parent, pos, size) ||
        !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name))
    {
        wxFAIL_MSG( wxT("wxSpinButton creation failed") );
        return false;
    }

    m_pos = 0;

    m_widget = gtk_spin_button_new_with_range(0, 100, 1);
    g_object_ref(m_widget);

    gtk_entry_set_width_chars(GTK_ENTRY(m_widget), 0);
    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    g_signal_connect_after(
        m_widget, "value_changed", G_CALLBACK(gtk_value_changed), this);

    m_parent->DoAddChild( this );

    PostCreation(size);

    return true;
}
コード例 #2
0
ファイル: gimprotatetool.c プロジェクト: K-Sonoda/gimp
static void
gimp_rotate_tool_dialog (GimpTransformTool *tr_tool)
{
  GimpRotateTool *rotate = GIMP_ROTATE_TOOL (tr_tool);
  GtkWidget      *table;
  GtkWidget      *button;
  GtkWidget      *scale;
  GtkAdjustment  *adj;

  table = gtk_table_new (4, 2, FALSE);
  gtk_table_set_row_spacings (GTK_TABLE (table), 2);
  gtk_table_set_col_spacings (GTK_TABLE (table), 6);
  gtk_table_set_row_spacing (GTK_TABLE (table), 1, 6);
  gtk_box_pack_start (GTK_BOX (gimp_tool_gui_get_vbox (tr_tool->gui)), table,
                      FALSE, FALSE, 0);
  gtk_widget_show (table);

  rotate->angle_adj = (GtkAdjustment *)
    gtk_adjustment_new (0, -180, 180, 0.1, 15, 0);
  button = gtk_spin_button_new (rotate->angle_adj, 1.0, 2);
  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (button), TRUE);
  gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (button), TRUE);
  gtk_entry_set_width_chars (GTK_ENTRY (button), SB_WIDTH);
  gimp_table_attach_aligned (GTK_TABLE (table), 0, 0, _("_Angle:"),
                             0.0, 0.5, button, 1, TRUE);
  rotate->angle_spin_button = button;

  g_signal_connect (rotate->angle_adj, "value-changed",
                    G_CALLBACK (rotate_angle_changed),
                    tr_tool);

  scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, rotate->angle_adj);
  gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
  gtk_table_attach (GTK_TABLE (table), scale, 1, 2, 1, 2,
                    GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
  gtk_widget_show (scale);

  adj = (GtkAdjustment *) gtk_adjustment_new (0, -1, 1, 1, 10, 0);
  button = gtk_spin_button_new (adj, 1.0, 2);
  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (button), TRUE);
  gtk_entry_set_width_chars (GTK_ENTRY (button), SB_WIDTH);
  gimp_table_attach_aligned (GTK_TABLE (table), 0, 2, _("Center _X:"),
                             0.0, 0.5, button, 1, TRUE);

  rotate->sizeentry = gimp_size_entry_new (1, GIMP_UNIT_PIXEL, "%a",
                                           TRUE, TRUE, FALSE, SB_WIDTH,
                                           GIMP_SIZE_ENTRY_UPDATE_SIZE);
  gimp_size_entry_add_field (GIMP_SIZE_ENTRY (rotate->sizeentry),
                             GTK_SPIN_BUTTON (button), NULL);
  gimp_size_entry_set_pixel_digits (GIMP_SIZE_ENTRY (rotate->sizeentry), 2);
  gimp_table_attach_aligned (GTK_TABLE (table), 0, 3, _("Center _Y:"),
                             0.0, 0.5, rotate->sizeentry, 1, TRUE);

  g_signal_connect (rotate->sizeentry, "value-changed",
                    G_CALLBACK (rotate_center_changed),
                    tr_tool);
}
コード例 #3
0
ファイル: spinbutton.c プロジェクト: amery/clip-angelo
/* Sets a spin button's value to the lower limit when
 * it's upper limit is reached, and vice versa. */
int
clip_GTK_SPINBUTTONSETWRAP(ClipMachine * ClipMachineMemory)
{
   C_widget *cspb = _fetch_cw_arg(ClipMachineMemory);

   gboolean  wrap = BOOL_OPTION(ClipMachineMemory, 2, TRUE);

   CHECKCWID(cspb, GTK_IS_SPIN_BUTTON);
   CHECKOPT(2, LOGICAL_type_of_ClipVarType);
   gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(cspb->widget), wrap);
   return 0;
 err:
   return 1;
}
コード例 #4
0
ファイル: gbspinbutton.c プロジェクト: AriaAsuka/deadbeef
/*
 * Sets the properties of the widget. This is used for both applying the
 * properties changed in the property editor, and also for loading.
 */
static void
gb_spin_button_set_properties (GtkWidget * widget, GbWidgetSetArgData * data)
{
  gfloat climb_rate;
  gint digits, policy_value = GTK_UPDATE_ALWAYS, i;
  gchar *policy;
  gboolean numeric, snap, wrap;
  GtkAdjustment *adj;

  climb_rate = gb_widget_input_float (data, ClimbRate);
  /* No set function for this */
  if (data->apply)
    GTK_SPIN_BUTTON (widget)->climb_rate = climb_rate;

  digits = gb_widget_input_int (data, Digits);
  if (data->apply)
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (widget), digits);

  numeric = gb_widget_input_bool (data, Numeric);
  if (data->apply)
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (widget), numeric);

  snap = gb_widget_input_bool (data, Snap);
  if (data->apply)
    gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (widget), snap);

  policy = gb_widget_input_choice (data, Policy);
  for (i = 0; i < sizeof (GbPolicyValues) / sizeof (GbPolicyValues[0]); i++)
    {
      if (!strcmp (policy, GbPolicyChoices[i])
	  || !strcmp (policy, GbPolicySymbols[i]))
	{
	  policy_value = GbPolicyValues[i];
	  break;
	}
    }
  if (data->apply)
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (widget), policy_value);

  wrap = gb_widget_input_bool (data, Wrap);
  if (data->apply)
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (widget), wrap);

  adj = GTK_SPIN_BUTTON (widget)->adjustment;
  if (gb_widget_input_adjustment (data, Values, adj, "adjustment"))
    {
      gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
    }
}
コード例 #5
0
ファイル: generic_new.c プロジェクト: piki/gat
GtkWidget *make_new_spinner(char *label, int val, int min, int max,
    int step, GtkWidget *box) {
  GtkWidget *vbox = NULL, *ret;
  GtkAdjustment *adj;
  if (label != NULL) {
    vbox = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(label), FALSE, FALSE, 0);
    gtk_box_pack_start(GTK_BOX(box), vbox, FALSE, FALSE, 0);
  }
  adj = GTK_ADJUSTMENT(gtk_adjustment_new(val, min, max, 1, step, 0));
  ret = gtk_spin_button_new(adj, 0, 0);
  gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(ret), TRUE);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(ret), TRUE);
  gtk_box_pack_start(GTK_BOX(label ? vbox : box), ret, FALSE, FALSE, 0);
  return ret;
}
コード例 #6
0
ファイル: linewidth_area.c プロジェクト: rennhak/Dia
static void
linewidth_create_dialog()
{
  GtkWidget *hbox;
  GtkWidget *label;
  GtkAdjustment *adj;

  linewidth_dialog = gtk_dialog_new_with_buttons(
	_("Line width"), GTK_WINDOW(interface_get_toolbox_shell()),
	0,
	GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
	GTK_STOCK_OK, GTK_RESPONSE_OK, 
	NULL);
  
  gtk_dialog_set_default_response (GTK_DIALOG(linewidth_dialog), GTK_RESPONSE_OK);
  gtk_window_set_role (GTK_WINDOW (linewidth_dialog), "linewidth_window");
  gtk_window_set_resizable (GTK_WINDOW (linewidth_dialog), TRUE);
  gtk_container_set_border_width (GTK_CONTAINER (linewidth_dialog), 2);

  hbox = gtk_hbox_new(FALSE, 5);
  label = gtk_label_new(_("Line width:"));
  gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
  gtk_widget_show (label);
  adj = (GtkAdjustment *) gtk_adjustment_new(0.1, 0.00, 10.0, 0.01, 0.05, 0.0);
  linewidth_button = gtk_spin_button_new(adj, attributes_get_default_linewidth(), 2);
  gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(linewidth_button), TRUE);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(linewidth_button), TRUE);
  gtk_box_pack_start(GTK_BOX (hbox), linewidth_button, TRUE, TRUE, 0);
  gtk_widget_show (linewidth_button);
  gtk_widget_show(hbox);
  gtk_box_pack_start (GTK_BOX(GTK_DIALOG (linewidth_dialog)->vbox), hbox, TRUE, TRUE, 0);
  
  gtk_widget_show (linewidth_button);

  g_signal_connect(G_OBJECT (linewidth_dialog), "response",
                   G_CALLBACK (linewidth_dialog_respond), NULL);
  g_signal_connect_after(G_OBJECT (linewidth_button), "activate",
                   G_CALLBACK (linewidth_dialog_ok), NULL);

  g_signal_connect (GTK_OBJECT (linewidth_dialog), "delete_event",
		    G_CALLBACK(gtk_widget_hide), NULL);
  g_signal_connect (GTK_OBJECT (linewidth_dialog), "destroy",
		    G_CALLBACK(dialog_destroyed), &linewidth_dialog);

  persistence_register_window (GTK_WINDOW (linewidth_dialog));
}
コード例 #7
0
ファイル: spinctrl.cpp プロジェクト: beanhome/dev
bool wxSpinCtrlGTKBase::Create(wxWindow *parent, wxWindowID id,
                        const wxString& value,
                        const wxPoint& pos,  const wxSize& size,
                        long style,
                        double min, double max, double initial, double inc,
                        const wxString& name)
{
    if (!PreCreation( parent, pos, size ) ||
        !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
    {
        wxFAIL_MSG( wxT("wxSpinCtrlGTKBase creation failed") );
        return false;
    }

    m_widget = gtk_spin_button_new_with_range(min, max, inc);
    g_object_ref(m_widget);

    gtk_spin_button_set_value( GTK_SPIN_BUTTON(m_widget), initial);

    gfloat align;
    if ( HasFlag(wxALIGN_RIGHT) )
        align = 1.0;
    else if ( HasFlag(wxALIGN_CENTRE) )
        align = 0.5;
    else
        align = 0.0;

    gtk_entry_set_alignment(GTK_ENTRY(m_widget), align);

    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    g_signal_connect_after(m_widget, "value_changed", G_CALLBACK(gtk_value_changed), this);
    g_signal_connect_after(m_widget, "changed", G_CALLBACK(gtk_changed), this);

    m_parent->DoAddChild( this );

    PostCreation(size);

    if (!value.empty())
    {
        SetValue(value);
    }

    return true;
}
コード例 #8
0
ファイル: goptions.c プロジェクト: Rapaka/fio
static struct gopt *gopt_new_str_val(struct gopt_job_view *gjv,
				     struct fio_option *o,
				     unsigned long long *p, unsigned int idx)
{
	struct gopt_str_val *g;
	const gchar *postfix[] = { "B", "KB", "MB", "GB", "PB", "TB", "" };
	GtkWidget *label;
	int i;

	g = calloc(1, sizeof(*g));
	g->gopt.box = gtk_hbox_new(FALSE, 3);
	if (!o->lname)
		label = gtk_label_new(o->name);
	else
		label = gtk_label_new(o->lname);
	gopt_mark_index(gjv, &g->gopt, idx, GOPT_STR_VAL);

	g->spin = gtk_spin_button_new_with_range(0.0, 1023.0, 1.0);
	gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(g->spin), GTK_UPDATE_IF_VALID);
	gtk_spin_button_set_value(GTK_SPIN_BUTTON(g->spin), 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(g->spin), 1);
	gtk_box_pack_start(GTK_BOX(g->gopt.box), g->spin, FALSE, FALSE, 0);
	g_signal_connect(G_OBJECT(g->spin), "wrapped", G_CALLBACK(gopt_str_val_spin_wrapped), g);
	g_signal_connect(G_OBJECT(g->spin), "changed", G_CALLBACK(gopt_str_val_changed), g);

	g->combo = gtk_combo_box_text_new();
	i = 0;
	while (strlen(postfix[i])) {
		gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(g->combo), postfix[i]);
		i++;
	}
	g->maxindex = i - 1;
	gtk_combo_box_set_active(GTK_COMBO_BOX(g->combo), 0);
	gtk_box_pack_start(GTK_BOX(g->gopt.box), g->combo, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(g->gopt.box), label, FALSE, FALSE, 3);

	if (p)
		gopt_str_val_set_val(g, *p);

	g_signal_connect(G_OBJECT(g->combo), "changed", G_CALLBACK(gopt_str_val_changed), g);

	g_signal_connect(G_OBJECT(g->gopt.box), "destroy", G_CALLBACK(gopt_str_val_destroy), g);
	return &g->gopt;
}
コード例 #9
0
static GtkContainer *
mh_get_setup_page( XfceMailwatchMailbox *mailbox )
{
    XfceMailwatchMHMailbox  *mh = XFCE_MAILWATCH_MH_MAILBOX( mailbox );
    GtkWidget               *vbox, *hbox;
    GtkWidget               *label, *spinner;

    vbox = gtk_vbox_new( FALSE, BORDER );
    gtk_widget_show( vbox );

    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );
    
    label = gtk_label_new( _( "The configuration of this plugin is read from\n"
                              "the default mh maildir profile file ~/.mh_profile" ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );

    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );
    
    label = gtk_label_new_with_mnemonic( _( "_Interval:" ) );
    gtk_widget_show( label );
    gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );

    spinner = gtk_spin_button_new_with_range( 1.0, 1440.0, 1.0 );
    gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( spinner ), TRUE );
    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( spinner ), FALSE );
    gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinner ), mh->timeout / 60 );
    gtk_widget_show( spinner );
    gtk_box_pack_start( GTK_BOX( hbox ), spinner, FALSE, FALSE, 0 );
    g_signal_connect( G_OBJECT( spinner ), "value-changed",
            G_CALLBACK( mh_timeout_changed_cb ), mh );
    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), spinner );

    label = gtk_label_new( _( "minute(s)." ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );
    
    return ( GTK_CONTAINER( vbox ) );
}
コード例 #10
0
ファイル: spinbutt.cpp プロジェクト: EEmmanuel7/wxWidgets
bool wxSpinButton::Create(wxWindow *parent,
                          wxWindowID id,
                          const wxPoint& pos,
                          const wxSize& size,
                          long style,
                          const wxString& name)
{
    m_needParent = true;

    wxSize new_size = size,
           sizeBest = DoGetBestSize();
    new_size.x = sizeBest.x;            // override width always
    if (new_size.y == -1)
        new_size.y = sizeBest.y;

    if (!PreCreation( parent, pos, new_size ) ||
        !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
    {
        wxFAIL_MSG( wxT("wxXX creation failed") );
        return false;
    }

    m_oldPos = 0.0;

    m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0);

    m_widget = gtk_spin_button_new( m_adjust, 0, 0 );

    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    gtk_signal_connect( GTK_OBJECT (m_adjust),
                        "value_changed",
                        (GtkSignalFunc) gtk_spinbutt_callback,
                        (gpointer) this );

    m_parent->DoAddChild( this );

    PostCreation(new_size);

    return true;
}
コード例 #11
0
ファイル: spinbutt.cpp プロジェクト: Bluehorn/wxPython
bool wxSpinButton::Create(wxWindow *parent,
                          wxWindowID id,
                          const wxPoint& pos,
                          const wxSize& size,
                          long style,
                          const wxString& name)
{
    m_needParent = true;

    wxSize new_size = size,
           sizeBest = DoGetBestSize();
    new_size.x = sizeBest.x;            // override width always
    if (new_size.y == -1)
        new_size.y = sizeBest.y;

    if (!PreCreation( parent, pos, new_size ) ||
        !CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
    {
        wxFAIL_MSG( wxT("wxSpinButton creation failed") );
        return false;
    }

    m_pos = 0;

    m_widget = gtk_spin_button_new_with_range(0, 100, 1);

    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    g_signal_connect_after(
        m_widget, "value_changed", G_CALLBACK(gtk_value_changed), this);

    m_parent->DoAddChild( this );

    PostCreation(new_size);

    return true;
}
コード例 #12
0
ファイル: spinctrl.cpp プロジェクト: Bluehorn/wxPython
bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
                        const wxString& value,
                        const wxPoint& pos,  const wxSize& size,
                        long style,
                        int min, int max, int initial,
                        const wxString& name)
{
    m_needParent = true;
    m_acceptsFocus = true;

    if (!PreCreation( parent, pos, size ) ||
        !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
    {
        wxFAIL_MSG( wxT("wxSpinCtrl creation failed") );
        return false;
    }

    m_widget = gtk_spin_button_new_with_range(min, max, 1);
    gtk_spin_button_set_value( GTK_SPIN_BUTTON(m_widget), initial);

    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    g_signal_connect_after(m_widget, "value_changed", G_CALLBACK(gtk_value_changed), this);
    g_signal_connect_after(m_widget, "changed", G_CALLBACK(gtk_changed), this);

    m_parent->DoAddChild( this );

    PostCreation(size);

    if (!value.empty())
    {
        SetValue(value);
    }

    return true;
}
コード例 #13
0
ファイル: spinctrl.cpp プロジェクト: HackLinux/chandler-1
bool wxSpinCtrl::Create(wxWindow *parent, wxWindowID id,
                        const wxString& value,
                        const wxPoint& pos,  const wxSize& size,
                        long style,
                        int min, int max, int initial,
                        const wxString& name)
{
    m_needParent = TRUE;
    m_acceptsFocus = TRUE;

    if (!PreCreation( parent, pos, size ) ||
        !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
    {
        wxFAIL_MSG( wxT("wxSpinCtrl creation failed") );
        return FALSE;
    }

    m_oldPos = initial;

    m_adjust = (GtkAdjustment*) gtk_adjustment_new( initial, min, max, 1.0, 5.0, 0.0);

    m_widget = gtk_spin_button_new( m_adjust, 1, 0 );
    
    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget),
                              (int)(m_windowStyle & wxSP_WRAP) );

    GtkEnableEvents();
    
    m_parent->DoAddChild( this );

    PostCreation(size);

    SetValue( value );

    return TRUE;
}
コード例 #14
0
ファイル: setup.c プロジェクト: jonasfrantz/gdpc2
void showSetupWindow(struct Context *context) {
	GtkWidget *browseb, *cancelButton, *applyButton, *quitButton, *check, *erasetoggle,
			*whitetoggle, *dumpcheck, *sortrtoggle;
	GtkWidget *dumptifcheck, *dumpjpgcheck;
	GtkWidget *vbox_main, *hbox_main, *vbox, *hbox1, *hbox2, *hbox3, *vboxright,
			*vboxmostright, *vboxleft, *hboxcube;
	GtkWidget *vboxcubel, *vboxcuber, *vboxcuberm, *hboxxc, *vboxxcl, *vboxxcr,
			*hboxssize, *hboxsleep, *hboxd, *vbox_header;
	GtkWidget *hbox_cube, *hboxsc, *scoltoggle;
	GtkWidget *file_label, *column_label, *ff_label, *cxyz_label, *separator;
	GtkWidget *cube_label, *x_label, *y_label, *z_label, *xcol_label,
			*ycol_label, *zcol_label, *tcol_label, *ssize_label;
	GtkWidget *ssx_label, *ssy_label, *sleep_label, *d_label, *header,
			*col_label, *misc_label, *draw_label, *empty_label;
	GtkWidget *hboxtd;
	GSList *group;

	setupConfig.mode = context->config->mode;
	setupConfig.erasePreviousFrame = context->config->erasePreviousFrame;
	setupConfig.backgroundWhite = context->config->backgroundWhite;
	setupConfig.colorset = context->config->colorset;
	setupConfig.inputFormatXYZ = context->config->inputFormatXYZ;
	setupConfig.sort = context->config->sort;
	setupConfig.vary = context->config->vary;
	setupConfig.dumpnum = context->config->dumpnum;
	setupConfig.tifjpg = context->config->tifjpg;
	setupConfig.dumpnum = context->config->dumpnum;
	setupConfig.useTypesForColoring = context->config->useTypesForColoring;

	usedump = FALSE;
	usescol = FALSE;

	setupwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW (setupwin), "gdpc Setup");
	gtk_container_set_border_width(GTK_CONTAINER (setupwin), 5);

	g_signal_connect(G_OBJECT (setupwin), "destroy", G_CALLBACK (destroy),
			&setupwin);

	/* Create boxes for layout. */
	vbox_main = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
	vbox_header = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
	hbox_main = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 30);
	vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3);
	hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 30);
	hbox3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 30);
	hboxssize = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	hboxd = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	hboxsc = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	hbox_cube = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3);
	hboxcube = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3);
	vboxcubel = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	vboxcuber = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	vboxcuberm = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	hboxxc = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	vboxxcl = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
	vboxxcr = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
	hboxsleep = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	hboxtd = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	vboxleft = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	vboxright = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	vboxmostright = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
	gtk_container_add(GTK_CONTAINER (setupwin), vbox_main);

	gtk_box_pack_start(GTK_BOX (vbox_main), vbox_header, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (vbox_main), hbox_main, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (vbox_main), hbox3, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (hbox_main), vbox, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (hbox_main), vboxmostright, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (vbox), hbox1, FALSE, FALSE, 0);
	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vbox), separator, FALSE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (hbox2), vboxleft, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (hbox2), vboxright, FALSE, FALSE, 0);

	header = gtk_label_new(" Setup ");
	gtk_box_pack_start(GTK_BOX (vbox_header), header, FALSE, TRUE, 0);
	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vbox_header), separator, FALSE, TRUE, 3);

	file_label = gtk_label_new("Input file : ");
	file_entry = gtk_entry_new();
	gtk_entry_set_max_length(GTK_ENTRY(file_entry), 160);
	g_signal_connect(G_OBJECT (file_entry), "changed", G_CALLBACK (filechange),
			G_OBJECT (setupwin));
	if (context->config->file != NULL) {
		gtk_entry_set_text(GTK_ENTRY (file_entry), context->config->file);
	}
	gtk_widget_set_tooltip_text(file_entry, inputfilett);

	browseb = gtk_button_new_with_mnemonic("_Browse");
	g_signal_connect(G_OBJECT (browseb), "clicked", G_CALLBACK (filebrowser),
			G_OBJECT (setupwin));

	gtk_box_pack_start(GTK_BOX (hbox1), file_label, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX (hbox1), file_entry, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hbox1), browseb, FALSE, FALSE, 0);

	ssize_label = gtk_label_new("Drawingboard size [pixels]");
	ssx_label = gtk_label_new(" X : ");
	ssy_label = gtk_label_new(" Y : ");

	adjssizex = (GtkAdjustment *) gtk_adjustment_new(context->config->absxsize, 0.0,
			3000.0, 10.0, 5.0, 0.0);
	adjssizey = (GtkAdjustment *) gtk_adjustment_new(context->config->absysize, 0.0,
			3000.0, 10.0, 5.0, 0.0);

	ssxspinner = gtk_spin_button_new(adjssizex, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (ssxspinner), FALSE);
	ssyspinner = gtk_spin_button_new(adjssizey, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (ssyspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (vboxleft), ssize_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxssize), ssx_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxssize), ssxspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxssize), ssy_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxssize), ssyspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxleft), hboxssize, TRUE, TRUE, 0);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);

	cxyz_label = gtk_label_new("Simulation box size");
	gtk_box_pack_start(GTK_BOX (vboxleft), cxyz_label, TRUE, TRUE, 3);

	gtk_box_pack_start(GTK_BOX (vboxleft), hbox_cube, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (vboxleft), hboxcube, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (hboxcube), vboxcubel, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (hboxcube), vboxcuber, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (hboxcube), vboxcuberm, TRUE, TRUE, 3);

	cube_label = gtk_label_new("Cube : ");

	adjcube = (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 10000.0, 1.0, 5.0,
			0.0);

	cubespinner = gtk_spin_button_new(adjcube, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (cubespinner), FALSE);
//    gtk_spin_button_set_shadow_type (GTK_SPIN_BUTTON (cubespinner),
//                                     GTK_SHADOW_OUT);
	gtk_box_pack_start(GTK_BOX (hbox_cube), cube_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hbox_cube), cubespinner, TRUE, TRUE, 0);
	gtk_widget_set_tooltip_text(cubespinner, cubett);

	x_label = gtk_label_new("X : ");

	if (context->config->xmin == 65535.0) {
		adjx = (GtkAdjustment *) gtk_adjustment_new(0.0, -10000.0, 0.0, 1.0,
				5.0, 0.0);
		adjx2 = (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 10000.0, 1.0,
				5.0, 0.0);
	} else {
		adjx = (GtkAdjustment *) gtk_adjustment_new(context->config->xmin, -10000.0,
				context->config->xmax, 1.0, 5.0, 0.0);
		adjx2 = (GtkAdjustment *) gtk_adjustment_new(context->config->xmax, context->config->xmin,
				10000.0, 1.0, 5.0, 0.0);
	}

	xspinner = gtk_spin_button_new(adjx, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (xspinner), FALSE);
	g_signal_connect(G_OBJECT (adjx), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));
	x2spinner = gtk_spin_button_new(adjx2, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (x2spinner), FALSE);
	g_signal_connect(G_OBJECT (adjx2), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxcubel), x_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuber), xspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuberm), x2spinner, TRUE, TRUE, 0);

	y_label = gtk_label_new("Y : ");

	if (context->config->ymin == 65535.0) {
		adjy = (GtkAdjustment *) gtk_adjustment_new(0.0, -10000.0, 0.0, 1.0,
				5.0, 0.0);
		adjy2 = (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 10000.0, 1.0,
				5.0, 0.0);
	} else {
		adjy = (GtkAdjustment *) gtk_adjustment_new(context->config->ymin, -10000.0,
				context->config->ymax, 1.0, 5.0, 0.0);
		adjy2 = (GtkAdjustment *) gtk_adjustment_new(context->config->ymax, context->config->ymin,
				10000.0, 1.0, 5.0, 0.0);
	}

	yspinner = gtk_spin_button_new(adjy, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (yspinner), FALSE);
	g_signal_connect(G_OBJECT (adjy), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));

	y2spinner = gtk_spin_button_new(adjy2, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (y2spinner), FALSE);
	g_signal_connect(G_OBJECT (adjy2), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxcubel), y_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuber), yspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuberm), y2spinner, TRUE, TRUE, 0);

	z_label = gtk_label_new("Z : ");

	if (context->config->zmin == 65535.0) {
		adjz = (GtkAdjustment *) gtk_adjustment_new(0.0, -10000.0, 0.0, 1.0,
				5.0, 0.0);
		adjz2 = (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 10000.0, 1.0,
				5.0, 0.0);
	} else {
		adjz = (GtkAdjustment *) gtk_adjustment_new(context->config->zmin, -10000.0,
				context->config->zmax, 1.0, 5.0, 0.0);
		adjz2 = (GtkAdjustment *) gtk_adjustment_new(context->config->zmax, context->config->zmin,
				10000.0, 1.0, 5.0, 0.0);
	}

	zspinner = gtk_spin_button_new(adjz, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (zspinner), FALSE);
	g_signal_connect(G_OBJECT (adjz), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));

	z2spinner = gtk_spin_button_new(adjz2, 0, 2);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (z2spinner), FALSE);
	g_signal_connect(G_OBJECT (adjz2), "value_changed",
			G_CALLBACK (setspinlimits), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxcubel), z_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuber), zspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxcuberm), z2spinner, TRUE, TRUE, 0);

	gtk_widget_set_tooltip_text(xspinner, mintt);
	gtk_widget_set_tooltip_text(yspinner, mintt);
	gtk_widget_set_tooltip_text(zspinner, mintt);
	gtk_widget_set_tooltip_text(x2spinner, maxtt);
	gtk_widget_set_tooltip_text(y2spinner, maxtt);
	gtk_widget_set_tooltip_text(z2spinner, maxtt);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);

	column_label = gtk_label_new("Input data column representations");
	gtk_box_pack_start(GTK_BOX (vboxleft), column_label, TRUE, TRUE, 0);

	gtk_box_pack_start(GTK_BOX (vboxleft), hboxxc, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (hboxxc), vboxxcl, TRUE, TRUE, 3);
	gtk_box_pack_start(GTK_BOX (hboxxc), vboxxcr, TRUE, TRUE, 3);

	xcol_label = gtk_label_new("X column : ");

	adjxc = (GtkAdjustment *) gtk_adjustment_new(context->config->xcolumn, 1.0, 100.0,
			1.0, 5.0, 0.0);

	xcspinner = gtk_spin_button_new(adjxc, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (xcspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (vboxxcl), xcol_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxxcr), xcspinner, TRUE, TRUE, 0);
	gtk_widget_set_tooltip_text(xcspinner, xcoltt);

	ycol_label = gtk_label_new("Y column : ");

	adjyc = (GtkAdjustment *) gtk_adjustment_new(context->config->ycolumn, 1.0, 100.0,
			1.0, 5.0, 0.0);

	ycspinner = gtk_spin_button_new(adjyc, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (ycspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (vboxxcl), ycol_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxxcr), ycspinner, TRUE, TRUE, 0);
	gtk_widget_set_tooltip_text(ycspinner, ycoltt);

	zcol_label = gtk_label_new("Z column : ");

	adjzc = (GtkAdjustment *) gtk_adjustment_new(context->config->zcolumn, 1.0, 100.0,
			1.0, 5.0, 0.0);

	zcspinner = gtk_spin_button_new(adjzc, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (zcspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (vboxxcl), zcol_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxxcr), zcspinner, TRUE, TRUE, 0);
	gtk_widget_set_tooltip_text(zcspinner, zcoltt);

	tcol_label = gtk_label_new("t column : ");

	adjtc = (GtkAdjustment *) gtk_adjustment_new(context->config->tcolumn, 1.0, 100.0,
			1.0, 5.0, 0.0);

	tcspinner = gtk_spin_button_new(adjtc, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (tcspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (vboxxcl), tcol_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxxcr), tcspinner, TRUE, TRUE, 0);
	gtk_widget_set_tooltip_text(tcspinner, tcoltt);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxleft), separator, FALSE, TRUE, 3);

	timedel_entry = gtk_entry_new();
	gtk_entry_set_max_length(GTK_ENTRY(timedel_entry), 160);
	gtk_entry_set_text(GTK_ENTRY (timedel_entry), context->config->timedelim);
	timedel_label = gtk_label_new("Time unit : ");
	gtk_box_pack_start(GTK_BOX (hboxtd), timedel_label, FALSE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxtd), timedel_entry, FALSE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxleft), hboxtd, FALSE, TRUE, 0);
	if (!context->config->inputFormatXYZ) {
		gtk_widget_set_sensitive(timedel_entry, FALSE);
		gtk_widget_set_sensitive(timedel_label, FALSE);
	} else {
		gtk_widget_set_sensitive(timedel_entry, TRUE);
		gtk_widget_set_sensitive(timedel_label, TRUE);
	}
	gtk_widget_set_tooltip_text(timedel_entry, timedeltt);

	ff_label = gtk_label_new("Input file format");
	gtk_box_pack_start(GTK_BOX (vboxright), ff_label, TRUE, TRUE, 0);

	usetypescheck = gtk_check_button_new_with_label(" Use coloring by type");

	check = gtk_radio_button_new_with_label(NULL, "XYZ file format");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "clicked", G_CALLBACK (toggle_checkxyz),
			G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));
	if (context->config->inputFormatXYZ) {
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	}

	check = gtk_radio_button_new_with_label(group, "Arbitrary file format");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "clicked", G_CALLBACK (toggle_checkaff),
			G_OBJECT (setupwin));
	if (!context->config->inputFormatXYZ) {
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	}

	g_signal_connect(G_OBJECT (usetypescheck), "toggled",
			G_CALLBACK (toggle_usetypes), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxright), usetypescheck, TRUE, TRUE, 0);
	if (context->config->useTypesForColoring)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (usetypescheck), TRUE);
	else
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (usetypescheck), FALSE);
	gtk_widget_set_tooltip_text(usetypescheck, coltypett);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxright), separator, FALSE, TRUE, 3);

	draw_label = gtk_label_new(" Drawing options ");
	gtk_box_pack_start(GTK_BOX (vboxright), draw_label, TRUE, TRUE, 0);

	d_label = gtk_label_new("Size of drawn polygons :");

	adjd = (GtkAdjustment *) gtk_adjustment_new(context->config->radius, 1.0, 100.0, 1.0,
			5.0, 0.0);

	dspinner = gtk_spin_button_new(adjd, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (dspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (hboxd), d_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxd), dspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxright), hboxd, TRUE, TRUE, 0);

	check = gtk_radio_button_new_with_label(NULL, "Draw as rectangles");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkm0),
			G_OBJECT (setupwin));
	if (context->config->mode == 0)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));

	check = gtk_radio_button_new_with_label(group, "Draw as circles");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkm1),
			G_OBJECT (setupwin));
	if (context->config->mode == 1)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));

	check = gtk_radio_button_new_with_label(group, "Draw as rendered balls");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkm2),
			G_OBJECT (setupwin));
	if (context->config->mode == 2)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	empty_label = gtk_label_new("  ");
	gtk_box_pack_start(GTK_BOX (vboxright), empty_label, TRUE, TRUE, 0);

	check = gtk_radio_button_new_with_label(NULL, "Dont vary size with z");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkv0),
			G_OBJECT (setupwin));
	if (context->config->vary == 0)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));

	check = gtk_radio_button_new_with_label(group,
			"Vary size with z, decreasing");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkv1),
			G_OBJECT (setupwin));
	if (context->config->vary == 1)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));

	check = gtk_radio_button_new_with_label(group,
			"Vary size with z, increasing");
	gtk_box_pack_start(GTK_BOX (vboxright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkv2),
			G_OBJECT (setupwin));
	if (context->config->vary == 2)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxright), separator, FALSE, TRUE, 3);

	scoltoggle = gtk_check_button_new_with_label(
			"Only use inputlines with string :");
	g_signal_connect(G_OBJECT (scoltoggle), "toggled", G_CALLBACK (toggle_scol),
			G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxright), scoltoggle, TRUE, TRUE, 0);

	scol_entry = gtk_entry_new();
	gtk_entry_set_max_length(GTK_ENTRY(scol_entry), 60);
	g_signal_connect(G_OBJECT (scol_entry), "changed", G_CALLBACK (filechange),
			G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxright), scol_entry, TRUE, TRUE, 0);

	scol_label = gtk_label_new(" in column ");
	adjscol = (GtkAdjustment *) gtk_adjustment_new(1.0, 1.0, 100.0, 1.0, 5.0,
			0.0);
	scolspinner = gtk_spin_button_new(adjscol, 0, 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (scolspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (hboxsc), scol_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxsc), scolspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxright), hboxsc, TRUE, TRUE, 0);

	gtk_widget_set_sensitive(scol_label, FALSE);
	gtk_widget_set_sensitive(scol_entry, FALSE);
	gtk_widget_set_sensitive(scolspinner, FALSE);

	col_label = gtk_label_new(" Color settings ");
	gtk_box_pack_start(GTK_BOX (vboxmostright), col_label, TRUE, TRUE, 0);

	check = gtk_radio_button_new_with_label(NULL, "Use default colors");
	gtk_box_pack_start(GTK_BOX (vboxmostright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkc0),
			G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));
	if (context->config->colorset == 0)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	check = gtk_radio_button_new_with_label(group, "Use inverted colors");
	gtk_box_pack_start(GTK_BOX (vboxmostright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkc1),
			G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));
	if (context->config->colorset == 1)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	check = gtk_radio_button_new_with_label(group, "Use cold colors");
	gtk_box_pack_start(GTK_BOX (vboxmostright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkc2),
			G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));
	if (context->config->colorset == 2)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	check = gtk_radio_button_new_with_label(group, "Use cold colors 2");
	gtk_box_pack_start(GTK_BOX (vboxmostright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkc3),
			G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (check));
	if (context->config->colorset == 3)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	check = gtk_radio_button_new_with_label(group, "Use greyscale colors");
	gtk_box_pack_start(GTK_BOX (vboxmostright), check, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (check), "toggled", G_CALLBACK (toggle_checkc4),
			G_OBJECT (setupwin));
	if (context->config->colorset == 4)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (check), TRUE);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);

	misc_label = gtk_label_new("Misc. settings");
	gtk_box_pack_start(GTK_BOX (vboxmostright), misc_label, TRUE, TRUE, 0);

	erasetoggle = gtk_check_button_new_with_label(
			" Erase before drawing next frame");
	g_signal_connect(G_OBJECT (erasetoggle), "toggled",
			G_CALLBACK (toggle_erase), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), erasetoggle, TRUE, TRUE, 0);
	if (context->config->erasePreviousFrame)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (erasetoggle), TRUE);

	whitetoggle = gtk_check_button_new_with_label(
			" Use white as backgroundcolor");
	g_signal_connect(G_OBJECT (whitetoggle), "toggled",
			G_CALLBACK (toggle_white), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), whitetoggle, TRUE, TRUE, 0);
	if (context->config->backgroundWhite)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (whitetoggle), TRUE);

	sortrtoggle = gtk_check_button_new_with_label(" Reverse sorting");
	g_signal_connect(G_OBJECT (sortrtoggle), "toggled",
			G_CALLBACK (toggle_sortr), G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), sortrtoggle, TRUE, TRUE, 0);
	if (context->config->sort == 2)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (sortrtoggle), TRUE);

	sleep_label = gtk_label_new("Delay between frames [s] : ");

	adjsleep = (GtkAdjustment *) gtk_adjustment_new((context->config->interval / 1000.0),
			0.0, 100.0, 0.1, 5.0, 0.0);

	sleepspinner = gtk_spin_button_new(adjsleep, 0, 1);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON (sleepspinner), FALSE);
	gtk_box_pack_start(GTK_BOX (hboxsleep), sleep_label, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (hboxsleep), sleepspinner, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX (vboxmostright), hboxsleep, TRUE, TRUE, 0);

	separator = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
	gtk_box_pack_start(GTK_BOX (vboxmostright), separator, FALSE, TRUE, 3);

	dump_label = gtk_label_new(" Dumped pictures name (no extension) : ");
	dump_entry = gtk_entry_new();
	gtk_entry_set_max_length(GTK_ENTRY(dump_entry), 60);
	gtk_widget_set_sensitive(dump_label, FALSE);
	gtk_widget_set_sensitive(dump_entry, FALSE);

	dtcheck = gtk_radio_button_new_with_label(NULL, " Add frame time");
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (dtcheck));
	gtk_widget_set_sensitive(dtcheck, FALSE);

	dncheck = gtk_radio_button_new_with_label(group, " Add frame number");
	gtk_widget_set_sensitive(dncheck, FALSE);

	okButton = gtk_button_new_from_stock(GTK_STOCK_OK);

	dumpcheck = gtk_radio_button_new_with_label(NULL, " Do not dump images");
	gtk_box_pack_start(GTK_BOX (vboxmostright), dumpcheck, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (dumpcheck), "toggled",
			G_CALLBACK (toggle_checkdump), G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (dumpcheck));
	if (strlen(context->config->dumpname) == 0)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dumpcheck), TRUE);

	dumptifcheck = gtk_radio_button_new_with_label(group,
			" Dump a .png of each frame");
	gtk_box_pack_start(GTK_BOX (vboxmostright), dumptifcheck, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (dumptifcheck), "toggled",
			G_CALLBACK (toggle_checkdumptif), G_OBJECT (setupwin));
	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON (dumptifcheck));
	if (strlen(context->config->dumpname) > 0 && context->config->tifjpg) {
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dumptifcheck), TRUE);
		gtk_entry_set_text(GTK_ENTRY (dump_entry), context->config->dumpname);
	}

	dumpjpgcheck = gtk_radio_button_new_with_label(group,
			" Dump a .jpg of each frame");
	gtk_box_pack_start(GTK_BOX (vboxmostright), dumpjpgcheck, TRUE, TRUE, 0);
	g_signal_connect(G_OBJECT (dumpjpgcheck), "toggled",
			G_CALLBACK (toggle_checkdumpjpg), G_OBJECT (setupwin));
	if (strlen(context->config->dumpname) > 0 && !context->config->tifjpg) {
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dumpjpgcheck), TRUE);
	}

	gtk_box_pack_start(GTK_BOX (vboxmostright), dump_label, TRUE, TRUE, 0);

	g_signal_connect(G_OBJECT (dump_entry), "changed", G_CALLBACK (filechange),
			G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), dump_entry, TRUE, TRUE, 0);

	g_signal_connect(G_OBJECT (dtcheck), "toggled", G_CALLBACK (toggle_checkdt),
			G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), dtcheck, TRUE, TRUE, 0);

	g_signal_connect(G_OBJECT (dncheck), "toggled", G_CALLBACK (toggle_checkdn),
			G_OBJECT (setupwin));
	gtk_box_pack_start(GTK_BOX (vboxmostright), dncheck, TRUE, TRUE, 0);

	if (setupConfig.dumpnum)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dncheck), TRUE);
	else
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dtcheck), TRUE);

	g_signal_connect(G_OBJECT (okButton), "clicked", G_CALLBACK (okeyPressed),
			(gpointer) context);
	gtk_box_pack_start(GTK_BOX (hbox3), okButton, TRUE, TRUE, 0);
	if (!context->StartedAlready)
		gtk_widget_set_sensitive(okButton, FALSE);

	cancelButton = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
	g_signal_connect(G_OBJECT (cancelButton), "clicked", G_CALLBACK (cancelPressed),
			(gpointer) context);
	gtk_box_pack_start(GTK_BOX (hbox3), cancelButton, TRUE, TRUE, 0);
	if (!context->StartedAlready)
		gtk_widget_set_sensitive(cancelButton, FALSE);

	applyButton = gtk_button_new_from_stock(GTK_STOCK_APPLY);
	g_signal_connect(G_OBJECT (applyButton), "clicked", G_CALLBACK (applyPressed),
			(gpointer) context);
	gtk_box_pack_start(GTK_BOX (hbox3), applyButton, TRUE, TRUE, 0);
	if (!context->StartedAlready)
		gtk_widget_set_sensitive(applyButton, FALSE);

	quitButton = gtk_button_new_from_stock(GTK_STOCK_QUIT);
	g_signal_connect(G_OBJECT (quitButton), "clicked", G_CALLBACK (quitPressed),
			(gpointer) context);
	gtk_box_pack_start(GTK_BOX (hbox3), quitButton, TRUE, TRUE, 0);

	gtk_widget_show_all(setupwin);
}
コード例 #15
0
/** \brief Create and initialise time controller widgets.
 *  \param module The parent GtkSatModule
 *
 */
void tmg_create (GtkSatModule *mod)
{
    GtkWidget   *vbox, *hbox, *table;
    GtkWidget   *image;
    GtkWidget   *label;
    gchar       *title;
    gchar       *buff;


    /* make sure controller is not already active */
    if (mod->tmgActive) {
        sat_log_log (SAT_LOG_LEVEL_INFO,
                     _("%s: Time Controller for %s is already active"),
                     __FUNCTION__, mod->name);

        /* try to make window visible in case it is covered
                   by something else */
        gtk_window_present (GTK_WINDOW (mod->tmgWin));

        return;
    }

    /* create hbox containing the controls
       the controls are implemented as radiobuttons in order
       to inherit the mutual exclusion behaviour
    */
    hbox = gtk_hbox_new (FALSE, 0);

    
    /* FWD */
    mod->tmgFwd = gtk_radio_button_new (NULL);
    gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (mod->tmgFwd), FALSE);
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mod->tmgFwd), TRUE);
    image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_FORWARD, GTK_ICON_SIZE_BUTTON);
    gtk_container_add (GTK_CONTAINER (mod->tmgFwd), image);
    gtk_widget_set_tooltip_text (mod->tmgFwd, _("Play forward"));
    g_signal_connect (mod->tmgFwd, "toggled", G_CALLBACK (tmg_fwd), mod);
    gtk_box_pack_end (GTK_BOX (hbox), mod->tmgFwd, FALSE, FALSE, 0);

    /* STOP */
    mod->tmgStop = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (mod->tmgFwd));
    gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (mod->tmgStop), FALSE);
    image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_PAUSE, GTK_ICON_SIZE_BUTTON);
    gtk_container_add (GTK_CONTAINER (mod->tmgStop), image);
    gtk_widget_set_tooltip_text (mod->tmgStop, _("Stop"));
    g_signal_connect (mod->tmgStop, "toggled", G_CALLBACK (tmg_stop), mod);
    gtk_box_pack_end (GTK_BOX (hbox), mod->tmgStop, FALSE, FALSE, 0);

    /* BWD */
    mod->tmgBwd = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (mod->tmgFwd));
    gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (mod->tmgBwd), FALSE);
    image = gtk_image_new_from_stock (GTK_STOCK_MEDIA_REWIND, GTK_ICON_SIZE_BUTTON);
    gtk_container_add (GTK_CONTAINER (mod->tmgBwd), image);
    gtk_widget_set_tooltip_text (mod->tmgBwd, _("Play backwards"));
    g_signal_connect (mod->tmgBwd, "toggled", G_CALLBACK (tmg_bwd), mod);
    gtk_box_pack_end (GTK_BOX (hbox), mod->tmgBwd, FALSE, FALSE, 0);

    /* reset time */
    mod->tmgReset = gtk_button_new_with_label (_("Reset"));
    gtk_widget_set_tooltip_text (mod->tmgReset, _("Reset to current date and time"));
    g_signal_connect (mod->tmgReset, "clicked", G_CALLBACK (tmg_reset), mod);
    gtk_box_pack_end (GTK_BOX (hbox), mod->tmgReset, FALSE, FALSE, 10);

    /* status label */
    mod->tmgState = gtk_label_new (NULL);
    gtk_misc_set_alignment (GTK_MISC (mod->tmgState), 0.0, 0.5);
    gtk_label_set_markup (GTK_LABEL (mod->tmgState), _("<b>Real-Time</b>"));
    gtk_box_pack_start (GTK_BOX (hbox), mod->tmgState, TRUE, TRUE, 10);


    /* create table containing the date and time widgets */
    table = gtk_table_new (5, 3, FALSE);
    gtk_table_set_row_spacings (GTK_TABLE (table), 0);

    mod->tmgCal = gtk_calendar_new ();
    gtk_calendar_set_display_options (GTK_CALENDAR (mod->tmgCal),
                                      GTK_CALENDAR_SHOW_HEADING     |
                                      GTK_CALENDAR_SHOW_DAY_NAMES |
                                      GTK_CALENDAR_WEEK_START_MONDAY);
    g_signal_connect (mod->tmgCal, "day-selected",
                      G_CALLBACK (tmg_time_set), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgCal,
                      0, 1, 0, 5, GTK_SHRINK, GTK_SHRINK,
                      0, 0);

    /* Time controllers.
       Note that the controllers for hours, minutes, and seconds have ranges;
       however, they can wrap around their limits in order to ensure a smooth
       and continuous control of the time
    */

    /* hour */
    label = gtk_label_new (_(" Hour:"));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      1, 2, 0, 1, GTK_SHRINK, GTK_SHRINK, 5, 0);
    mod->tmgHour = gtk_spin_button_new_with_range (0, 23, 1);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mod->tmgHour), TRUE);
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (mod->tmgHour),
                                       GTK_UPDATE_IF_VALID);
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (mod->tmgHour), 0);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (mod->tmgHour), TRUE);
    //FIXME gtk_spin_button_set_value (GTK_SPIN_BUTTON (mod->tmgHour), 2);
    gtk_widget_set_tooltip_text (mod->tmgHour,
                                 _("Use this control to set the hour"));
    g_signal_connect (mod->tmgHour, "value-changed",
                      G_CALLBACK (tmg_time_set), mod);
    g_signal_connect (mod->tmgHour, "wrapped", G_CALLBACK (tmg_hour_wrap), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgHour,
                      2, 3, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);

    /* minutes */
    label = gtk_label_new (_(" Min:"));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 5, 0);
    mod->tmgMin = gtk_spin_button_new_with_range (0, 59, 1);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mod->tmgMin), TRUE);
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (mod->tmgMin),
                                       GTK_UPDATE_IF_VALID);
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (mod->tmgMin), 0);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (mod->tmgMin), TRUE);
    //FIXME gtk_spin_button_set_value (GTK_SPIN_BUTTON (mod->tmgMin), 2);
    gtk_widget_set_tooltip_text (mod->tmgMin,
                                 _("Use this control to set the minutes"));
    g_signal_connect (mod->tmgMin, "value-changed",
                      G_CALLBACK (tmg_time_set), mod);
    g_signal_connect (mod->tmgMin, "wrapped", G_CALLBACK (tmg_min_wrap), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgMin,
                      2, 3, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);

    /* seconds */
    label = gtk_label_new (_(" Sec:"));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      1, 2, 2, 3, GTK_SHRINK, GTK_SHRINK, 5, 0);
    mod->tmgSec = gtk_spin_button_new_with_range (0, 59, 1);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mod->tmgSec), TRUE);
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (mod->tmgSec),
                                       GTK_UPDATE_IF_VALID);
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (mod->tmgSec), 0);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (mod->tmgSec), TRUE);
    //FIXME gtk_spin_button_set_value (GTK_SPIN_BUTTON (mod->tmgSec), 2);
    gtk_widget_set_tooltip_text (mod->tmgSec,
                                 _("Use this control to set the seconds"));
    g_signal_connect (mod->tmgSec, "value-changed",
                      G_CALLBACK (tmg_time_set), mod);
    g_signal_connect (mod->tmgSec, "wrapped", G_CALLBACK (tmg_sec_wrap), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgSec,
                      2, 3, 2, 3, GTK_SHRINK, GTK_SHRINK, 0, 0);

    /* milliseconds */
    label = gtk_label_new (_(" Msec:"));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      1, 2, 3, 4, GTK_SHRINK, GTK_SHRINK, 5, 0);
    mod->tmgMsec = gtk_spin_button_new_with_range (0, 999, 1);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mod->tmgMsec), TRUE);
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (mod->tmgMsec),
                                       GTK_UPDATE_IF_VALID);
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (mod->tmgMsec), 0);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (mod->tmgMsec), TRUE);
    //FIXME gtk_spin_button_set_value (GTK_SPIN_BUTTON (mod->tmgMsec), 2);
    gtk_widget_set_tooltip_text (mod->tmgMsec,
                                 _("Use this control to set the milliseconds"));
    g_signal_connect (mod->tmgMsec, "value-changed",
                      G_CALLBACK (tmg_time_set), mod);
    g_signal_connect (mod->tmgMsec, "wrapped", G_CALLBACK (tmg_msec_wrap), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgMsec,
                      2, 3, 3, 4, GTK_SHRINK, GTK_SHRINK, 0, 0);

    /* time throttle */
    label = gtk_label_new (_("Throttle:"));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      1, 2, 4, 5, GTK_SHRINK, GTK_SHRINK, 5, 0);
    mod->tmgFactor = gtk_spin_button_new_with_range (1, 100, 1);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mod->tmgFactor), TRUE);
    gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (mod->tmgFactor),
                                       GTK_UPDATE_IF_VALID);
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (mod->tmgFactor), 0);
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (mod->tmgFactor), 1);
    gtk_widget_set_tooltip_text (mod->tmgFactor,
                                 _("Time throttle / compression factor"));
    g_signal_connect (mod->tmgFactor, "value-changed",
                      G_CALLBACK (tmg_throttle), mod);
    gtk_table_attach (GTK_TABLE (table), mod->tmgFactor,
                      2, 3, 4, 5, GTK_SHRINK, GTK_SHRINK, 0, 0);

    /* add slider */
    mod->tmgSlider = gtk_hscale_new_with_range (-0.1, +0.1, 0.0001);  // +/- 2.5 hr
    /*gtk_widget_set_tooltip_text (mod->tmgSlider,
                                 _("Drag the slider to change the time up to +/- 2.5 hours.\n"\
                                   "Resolution is ~ 8 seconds."));*/
    gtk_scale_set_draw_value (GTK_SCALE (mod->tmgSlider), FALSE);
    gtk_range_set_value (GTK_RANGE (mod->tmgSlider), 0.0);
    g_signal_connect (mod->tmgSlider, "value-changed",
                      G_CALLBACK (slider_moved), mod);


    /* create the vertical box */
    vbox = gtk_vbox_new (FALSE, 0);

    gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), mod->tmgSlider, FALSE, FALSE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new(), FALSE, FALSE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);


    /* create main window */
    mod->tmgWin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    title = g_strconcat (_("Time Controller"), " / ", mod->name, NULL);
    gtk_window_set_title (GTK_WINDOW (mod->tmgWin), title);
    g_free (title);
    gtk_window_set_transient_for (GTK_WINDOW (mod->tmgWin),
                                  GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (mod))));
    g_signal_connect (G_OBJECT (mod->tmgWin), "delete_event",
                      G_CALLBACK (tmg_delete), mod);    
    g_signal_connect (G_OBJECT (mod->tmgWin), "destroy",
                      G_CALLBACK (tmg_destroy), mod);

    /* window icon */
    buff = icon_file_name ("gpredict-clock.png");
    gtk_window_set_icon_from_file (GTK_WINDOW (mod->tmgWin), buff, NULL);
    g_free (buff);

    gtk_container_add (GTK_CONTAINER (mod->tmgWin), vbox);
    gtk_widget_show_all (mod->tmgWin);

    mod->tmgActive = TRUE;

    sat_log_log (SAT_LOG_LEVEL_INFO,
                 _("%s: Time Controller for %s launched"),
                 __FUNCTION__, mod->name);
}
コード例 #16
0
static GtkContainer *
maildir_get_setup_page( XfceMailwatchMailbox *mailbox )
{
    XfceMailwatchMaildirMailbox *maildir = XFCE_MAILWATCH_MAILDIR_MAILBOX( mailbox );
    GtkWidget                   *vbox, *hbox;
    GtkWidget                   *label;
    GtkWidget                   *button;
    GtkWidget                   *spin;
    GtkSizeGroup                *sg;

    DBG( "-->>" );

    vbox = gtk_vbox_new( FALSE, BORDER / 2 );
    gtk_widget_show( vbox );

    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );

    sg = gtk_size_group_new( GTK_SIZE_GROUP_HORIZONTAL );

    label = gtk_label_new_with_mnemonic( _( "Maildir _Path:" ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );
    gtk_size_group_add_widget( sg, label );

    button = gtk_file_chooser_button_new( _("Select Maildir Folder"),
                                          GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER );
    g_mutex_lock( maildir->mutex );
    if ( maildir->path ) {
        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( button ), maildir->path );
    }
    g_mutex_unlock( maildir->mutex );
    gtk_widget_show( button );
    gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
    g_signal_connect( G_OBJECT( button ), "file-set",
            G_CALLBACK( maildir_folder_set_cb ), maildir );

    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), button );

    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );

    label = gtk_label_new_with_mnemonic( _( "_Interval:" ) );
    gtk_widget_show( label );
    gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );
    gtk_size_group_add_widget( sg, label );

    spin = gtk_spin_button_new_with_range( 1.0, 1440.0, 1.0 );
    gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( spin ), TRUE );
    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( spin ), FALSE );
    gtk_spin_button_set_value( GTK_SPIN_BUTTON( spin ), maildir->interval / 60 );
    gtk_widget_show( spin );
    gtk_box_pack_start( GTK_BOX( hbox ), spin, FALSE, FALSE, 0 );
    g_signal_connect( G_OBJECT( spin ), "value-changed",
            G_CALLBACK( maildir_interval_changed_cb ), maildir );
    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), spin );

    label = gtk_label_new( _( "minute(s)." ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );
    
    DBG( "<<--" );
    
    return ( GTK_CONTAINER( vbox ) );
}
コード例 #17
0
ファイル: plugin.c プロジェクト: emillon/gmpc-plugins
/**
 * Initialize preferences page
 */
void alarm_construct (GtkWidget *container)
{
    GtkWidget *action_label, *time_label, *action_combo;
    GtkWidget *countdown_label, *separator, *separator2;

    /* Preferences page is now visible and thus active */
    prefs_active = TRUE;

    enable_alarm = gtk_check_button_new_with_mnemonic (_("_Enable alarm"));

    /* Set enabled/disable toggle depending on if timer is already running! */
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_alarm), (timer_on) ? TRUE : FALSE);

    /* Set up the alarm time spinners */
    time_label = gtk_label_new (_("Time:"));
    time_hours_spinner = gtk_spin_button_new_with_range (0, 23, 1.0);
    time_minutes_spinner = gtk_spin_button_new_with_range (0, 59, 1.0);
    time_seconds_spinner = gtk_spin_button_new_with_range (0, 59, 1.0);

    guint time_hours_stored = cfg_get_single_value_as_int_with_default
        (config, "alarm-plugin", "time_hours", 0);

    /* If the hours are stored then assume the minutes and seconds are also. */
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (time_hours_spinner), time_hours_stored);
    gchar *str = g_strdup_printf ("%02d", (gint) time_hours_stored);
    gtk_entry_set_text (GTK_ENTRY (time_hours_spinner), str);

    gtk_spin_button_set_value (GTK_SPIN_BUTTON (time_minutes_spinner),
            cfg_get_single_value_as_int_with_default (config, "alarm-plugin", "time_minutes", 0));
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (time_seconds_spinner),
            cfg_get_single_value_as_int_with_default (config, "alarm-plugin", "time_seconds", 0));

    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (time_hours_spinner), TRUE);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (time_minutes_spinner), TRUE);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (time_seconds_spinner), TRUE);

    separator = gtk_label_new (":");
    separator2 = gtk_label_new (":");
    action_label = gtk_label_new (_("Action:"));
    action_combo = gtk_combo_box_new_text ();

    alarm_pref_table = gtk_table_new (2, 2, FALSE);
    alarm_pref_vbox = gtk_vbox_new (FALSE,6);

    /*
     * Hard-coded possible actions for once alarm deadline hit
     * TODO: Allow customized actions?
     */
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Play/Pause"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Stop"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Close  (& Stop)"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Close only"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Shutdown"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (action_combo), _("Toggle random"));
    gtk_combo_box_set_active (GTK_COMBO_BOX (action_combo),
            cfg_get_single_value_as_int_with_default (config, "alarm-plugin", "action-id", 0));

    /* Label to show remaining time */
    countdown_label = gtk_label_new (_("Time left:"));
    countdown = gtk_label_new ("--");

    /* Attach widgets */
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), time_label, 0, 1, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), time_hours_spinner, 1, 2, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), separator, 2, 3, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), time_minutes_spinner, 3, 4, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), separator2, 4, 5, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), time_seconds_spinner, 5, 6, 0, 1);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), action_label, 0, 1, 1, 2);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), action_combo, 1, 2, 1, 2);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), countdown_label, 0, 1, 2, 3);
    gtk_table_attach_defaults (GTK_TABLE (alarm_pref_table), countdown, 1, 2, 2, 3);

    /* Connect signals */
    g_signal_connect (G_OBJECT (time_hours_spinner), "value-changed", G_CALLBACK (on_spin_value_changed), NULL);
    g_signal_connect (G_OBJECT (time_minutes_spinner), "value-changed", G_CALLBACK (on_spin_value_changed), NULL);
    g_signal_connect (G_OBJECT (time_seconds_spinner), "value-changed", G_CALLBACK (on_spin_value_changed), NULL);

    /* Check that we're running gtk+ for supported gtk_spin_button 'wrapped' functionality */
#if (GTK_MINOR_VERSION >= 20) 
    g_signal_connect (G_OBJECT (time_hours_spinner), "wrapped", G_CALLBACK (on_spin_value_wrapped), NULL);
    g_signal_connect (G_OBJECT (time_minutes_spinner), "wrapped", G_CALLBACK (on_spin_value_wrapped), NULL);
    g_signal_connect (G_OBJECT (time_seconds_spinner), "wrapped", G_CALLBACK (on_spin_value_wrapped), NULL);
#endif

    g_signal_connect (G_OBJECT (action_combo), "changed", G_CALLBACK (on_action_value_changed), NULL);
    g_signal_connect (G_OBJECT (enable_alarm), "toggled", G_CALLBACK (on_enable_toggle), NULL);

    gtk_box_pack_start (GTK_BOX (alarm_pref_vbox), enable_alarm, FALSE, FALSE, 0);
    gtk_box_pack_start (GTK_BOX (alarm_pref_vbox), alarm_pref_table, FALSE, FALSE, 0);

    gtk_container_add (GTK_CONTAINER (container), alarm_pref_vbox);
    gtk_widget_show_all (container);
}
コード例 #18
0
static void init_control_page(GuiInfo *gui, GtkNotebook *window_notebook) {
	GtkWidget *controlhbox;
	GtkWidget *controlvbox1;
	GtkWidget *controlvbox2;
	GtkWidget *controltablabel;

	GtkWidget *bat_speed_label;
	GtkWidget *bat_speed_hbox;
	GtkObject *bat_speed_adjustment;
	GtkWidget *bat_speed_sbutton;

	GtkWidget *method_frame;
	GtkWidget *method_vbox;
	GtkWidget *method_mouse_radio;
	GtkWidget *method_keyboard_radio;

	GtkWidget *keyb_frame;
	GtkWidget *keyb_vbox;

	GtkWidget *keyb_left_hbox;
	GtkWidget *keyb_left_label;
	GtkWidget *keyb_left_entry;

	GtkWidget *keyb_right_hbox;
	GtkWidget *keyb_right_label;
	GtkWidget *keyb_right_entry;

	GtkWidget *keyb_fire1_hbox;
	GtkWidget *keyb_fire1_label;
	GtkWidget *keyb_fire1_entry;

	GtkWidget *keyb_fire2_hbox;
	GtkWidget *keyb_fire2_label;
	GtkWidget *keyb_fire2_entry;

	/* Init the vbox */
	controlhbox = gtk_hbox_new(TRUE, GNOME_PAD);
	controlvbox1 = gtk_vbox_new(TRUE, GNOME_PAD);
	controlvbox2 = gtk_vbox_new(TRUE, GNOME_PAD);
	controltablabel = gtk_label_new(_("Control"));
	gtk_box_pack_start(GTK_BOX(controlhbox), controlvbox1, TRUE, TRUE, GNOME_PAD);
	gtk_box_pack_start(GTK_BOX(controlhbox), controlvbox2, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(controlhbox);
	gtk_widget_show(controlvbox1);
	gtk_widget_show(controlvbox2);

        /* Method Frame and Radio Buttons */
        method_frame = gtk_frame_new(_("Method"));
        gtk_frame_set_shadow_type(GTK_FRAME(method_frame), GTK_SHADOW_ETCHED_IN);
        method_vbox = gtk_vbox_new(FALSE, 0);
        gtk_container_add(GTK_CONTAINER(method_frame), method_vbox);
        method_keyboard_radio = gtk_radio_button_new_with_label(NULL, _("Keyboard"));
        method_mouse_radio = gtk_radio_button_new_with_label_from_widget(
                        GTK_RADIO_BUTTON(method_keyboard_radio), _("Mouse"));
        gtk_box_pack_start_defaults(GTK_BOX(method_vbox),
                        method_keyboard_radio);
        gtk_box_pack_start_defaults(GTK_BOX(method_vbox),
                        method_mouse_radio);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(method_mouse_radio),
                        newflags->mouse_control);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(method_keyboard_radio),
                        newflags->keyboard_control);
        gtk_box_pack_start(GTK_BOX(controlvbox1), method_frame, TRUE, TRUE, GNOME_PAD);
        gtk_widget_show(method_frame);
        gtk_widget_show(method_vbox);
        gtk_widget_show(method_keyboard_radio);
        gtk_widget_show(method_mouse_radio);
        g_signal_connect(GTK_OBJECT(method_keyboard_radio), "toggled",
                        GTK_SIGNAL_FUNC(cb_ctrl_key), NULL);
        g_signal_connect(GTK_OBJECT(method_mouse_radio), "toggled",
                        GTK_SIGNAL_FUNC(cb_ctrl_mouse), NULL);

        /* Bat speed */
        bat_speed_label = gtk_label_new(_("Bat speed: "));
        bat_speed_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
        bat_speed_adjustment = gtk_adjustment_new((gfloat) newflags->bat_speed,
                        (gfloat) MIN_BATSPEED, (gfloat) MAX_BATSPEED,
                        1.0, 5.0, 1.0);
        bat_speed_sbutton = gtk_spin_button_new(
                        GTK_ADJUSTMENT(bat_speed_adjustment), 1.0, 0);
        gtk_spin_button_set_digits(GTK_SPIN_BUTTON(bat_speed_sbutton), 0);
        gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(bat_speed_sbutton), FALSE);
        gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(bat_speed_sbutton), TRUE);
        gtk_box_pack_start_defaults(GTK_BOX(bat_speed_hbox), bat_speed_label);
        gtk_box_pack_start_defaults(GTK_BOX(bat_speed_hbox), bat_speed_sbutton);
        gtk_box_pack_start(GTK_BOX(controlvbox1), bat_speed_hbox, TRUE, FALSE, GNOME_PAD);
        gtk_widget_show(bat_speed_label);
        gtk_widget_show(bat_speed_hbox);
        gtk_widget_show(bat_speed_sbutton);
        g_signal_connect(GTK_OBJECT(bat_speed_adjustment), "value_changed",
                        GTK_SIGNAL_FUNC(cb_bat_speed), bat_speed_sbutton);

	/* Keybindings Frame */
	keyb_frame = gtk_frame_new(_("Keybindings"));
	gtk_frame_set_shadow_type(GTK_FRAME(keyb_frame), GTK_SHADOW_ETCHED_IN);
	keyb_vbox =  gtk_vbox_new(TRUE, GNOME_PAD);
	gtk_container_add(GTK_CONTAINER(keyb_frame), keyb_vbox);
	gtk_box_pack_start(GTK_BOX(controlvbox2), keyb_frame, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(keyb_vbox);
	gtk_widget_show(keyb_frame);

	/* KB: Left */
	keyb_left_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
	keyb_left_label = gtk_label_new(_("Left:"));
	gtk_misc_set_alignment(GTK_MISC(keyb_left_label), 0.0, 0.5);
	keyb_left_entry = gtk_entry_new();
	gtk_entry_set_editable(GTK_ENTRY(keyb_left_entry), FALSE);
	gtk_entry_set_text(GTK_ENTRY(keyb_left_entry),
			gdk_keyval_name(newflags->left_key));
	gtk_box_pack_start_defaults(GTK_BOX(keyb_left_hbox), keyb_left_label);
	gtk_box_pack_start_defaults(GTK_BOX(keyb_left_hbox), keyb_left_entry);
	gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_left_hbox, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(keyb_left_label);
	gtk_widget_show(keyb_left_entry);
	gtk_widget_show(keyb_left_hbox);
	g_signal_connect(GTK_OBJECT(keyb_left_entry), "key_press_event",
			GTK_SIGNAL_FUNC(cb_key_left), NULL);

	/* KB: Right */
	keyb_right_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
	keyb_right_label = gtk_label_new(_("Right:"));
	gtk_misc_set_alignment(GTK_MISC(keyb_right_label), 0.0, 0.5);
	keyb_right_entry = gtk_entry_new();
	gtk_entry_set_editable(GTK_ENTRY(keyb_right_entry), FALSE);
	gtk_entry_set_text(GTK_ENTRY(keyb_right_entry),
			gdk_keyval_name(newflags->right_key));
	gtk_box_pack_start_defaults(GTK_BOX(keyb_right_hbox), keyb_right_label);
	gtk_box_pack_start_defaults(GTK_BOX(keyb_right_hbox), keyb_right_entry);
	gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_right_hbox, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(keyb_right_label);
	gtk_widget_show(keyb_right_entry);
	gtk_widget_show(keyb_right_hbox);
	g_signal_connect(GTK_OBJECT(keyb_right_entry), "key_press_event",
			GTK_SIGNAL_FUNC(cb_key_right), NULL);

	/* KB: Fire1 */
	keyb_fire1_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
	keyb_fire1_label = gtk_label_new(_("Fire One:"));
	gtk_misc_set_alignment(GTK_MISC(keyb_fire1_label), 0.0, 0.5);
	keyb_fire1_entry = gtk_entry_new();
	gtk_entry_set_editable(GTK_ENTRY(keyb_fire1_entry), FALSE);
	gtk_entry_set_text(GTK_ENTRY(keyb_fire1_entry),
			gdk_keyval_name(newflags->fire1_key));
	gtk_box_pack_start_defaults(GTK_BOX(keyb_fire1_hbox), keyb_fire1_label);
	gtk_box_pack_start_defaults(GTK_BOX(keyb_fire1_hbox), keyb_fire1_entry);
	gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_fire1_hbox, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(keyb_fire1_label);
	gtk_widget_show(keyb_fire1_entry);
	gtk_widget_show(keyb_fire1_hbox);
	g_signal_connect(GTK_OBJECT(keyb_fire1_entry), "key_press_event",
			GTK_SIGNAL_FUNC(cb_key_fire1), NULL);

	/* KB: Fire2 */
	keyb_fire2_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
	keyb_fire2_label = gtk_label_new(_("Fire Two:"));
	gtk_misc_set_alignment(GTK_MISC(keyb_fire2_label), 0.0, 0.5);
	keyb_fire2_entry = gtk_entry_new();
	gtk_entry_set_editable(GTK_ENTRY(keyb_fire2_entry), FALSE);
	gtk_entry_set_text(GTK_ENTRY(keyb_fire2_entry),
			gdk_keyval_name(newflags->fire2_key));
	gtk_box_pack_start_defaults(GTK_BOX(keyb_fire2_hbox), keyb_fire2_label);
	gtk_box_pack_start_defaults(GTK_BOX(keyb_fire2_hbox), keyb_fire2_entry);
	gtk_box_pack_start(GTK_BOX(keyb_vbox), keyb_fire2_hbox, TRUE, TRUE, GNOME_PAD);
	gtk_widget_show(keyb_fire2_label);
	gtk_widget_show(keyb_fire2_entry);
	gtk_widget_show(keyb_fire2_hbox);
	g_signal_connect(GTK_OBJECT(keyb_fire2_entry), "key_press_event",
			GTK_SIGNAL_FUNC(cb_key_fire2), NULL);

	/* Add it to the dialog */
	gtk_notebook_append_page(GTK_NOTEBOOK(window_notebook),
			controlhbox, controltablabel);
}
コード例 #19
0
GtkWidget *
gimp_prop_widget_new_from_pspec (GObject               *config,
                                 GParamSpec            *pspec,
                                 GimpContext           *context,
                                 GimpCreatePickerFunc   create_picker_func,
                                 gpointer               picker_creator,
                                 const gchar          **label)
{
  GtkWidget *widget = NULL;

  g_return_val_if_fail (G_IS_OBJECT (config), NULL);
  g_return_val_if_fail (pspec != NULL, NULL);
  g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
  g_return_val_if_fail (label != NULL, NULL);

  *label = NULL;

  if (GEGL_IS_PARAM_SPEC_SEED (pspec))
    {
      GtkAdjustment *adj;
      GtkWidget     *spin;
      GtkWidget     *button;

      widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);

      spin = gimp_prop_spin_button_new (config, pspec->name,
                                        1.0, 10.0, 0);
      gtk_box_pack_start (GTK_BOX (widget), spin, TRUE, TRUE, 0);
      gtk_widget_show (spin);

      button = gtk_button_new_with_label (_("New Seed"));
      gtk_box_pack_start (GTK_BOX (widget), button, FALSE, FALSE, 0);
      gtk_widget_show (button);

      adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (spin));

      g_signal_connect (button, "clicked",
                        G_CALLBACK (gimp_prop_widget_new_seed_clicked),
                        adj);

      *label = g_param_spec_get_nick (pspec);
    }
  else if (G_IS_PARAM_SPEC_INT (pspec)   ||
           G_IS_PARAM_SPEC_UINT (pspec)  ||
           G_IS_PARAM_SPEC_FLOAT (pspec) ||
           G_IS_PARAM_SPEC_DOUBLE (pspec))
    {
      gdouble lower;
      gdouble upper;
      gdouble step;
      gdouble page;
      gint    digits;

      if (GEGL_IS_PARAM_SPEC_DOUBLE (pspec))
        {
          GeglParamSpecDouble *gspec = GEGL_PARAM_SPEC_DOUBLE (pspec);

          lower  = gspec->ui_minimum;
          upper  = gspec->ui_maximum;
          step   = gspec->ui_step_small;
          page   = gspec->ui_step_big;
          digits = gspec->ui_digits;
        }
      else if (GEGL_IS_PARAM_SPEC_INT (pspec))
        {
          GeglParamSpecInt *gspec = GEGL_PARAM_SPEC_INT (pspec);

          lower  = gspec->ui_minimum;
          upper  = gspec->ui_maximum;
          step   = gspec->ui_step_small;
          page   = gspec->ui_step_big;
          digits = 0;
        }
      else
        {
          gdouble value;

          _gimp_prop_widgets_get_numeric_values (config, pspec,
                                                 &value, &lower, &upper,
                                                 G_STRFUNC);

          if ((upper - lower <= 1.0) &&
              (G_IS_PARAM_SPEC_FLOAT (pspec) ||
               G_IS_PARAM_SPEC_DOUBLE (pspec)))
            {
              step   = 0.01;
              page   = 0.1;
              digits = 4;
            }
          else if ((upper - lower <= 10.0) &&
                   (G_IS_PARAM_SPEC_FLOAT (pspec) ||
                    G_IS_PARAM_SPEC_DOUBLE (pspec)))
            {
              step   = 0.1;
              page   = 1.0;
              digits = 3;
            }
          else
            {
              step   = 1.0;
              page   = 10.0;
              digits = (G_IS_PARAM_SPEC_FLOAT (pspec) ||
                        G_IS_PARAM_SPEC_DOUBLE (pspec)) ? 2 : 0;
            }
        }

      widget = gimp_prop_spin_scale_new (config, pspec->name, NULL,
                                         step, page, digits);

      if (HAS_KEY (pspec, "unit", "degree") &&
          (upper - lower) == 360.0)
        {
          GtkWidget *hbox;
          GtkWidget *dial;

          gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (widget), TRUE);

          hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);

          gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
          gtk_widget_show (widget);

          dial = gimp_prop_angle_dial_new (config, pspec->name);
          gtk_box_pack_start (GTK_BOX (hbox), dial, FALSE, FALSE, 0);
          gtk_widget_show (dial);

          widget = hbox;
        }
      else if (HAS_KEY (pspec, "unit", "kelvin"))
        {
          GtkWidget *hbox;
          GtkWidget *button;

          hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);

          gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0);
          gtk_widget_show (widget);

          button = gimp_prop_kelvin_presets_new (config, pspec->name);
          gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
          gtk_widget_show (button);

          widget = hbox;
        }
    }
  else if (G_IS_PARAM_SPEC_STRING (pspec))
    {
      static GQuark multiline_quark = 0;

      if (! multiline_quark)
        multiline_quark = g_quark_from_static_string ("multiline");

      if (GIMP_IS_PARAM_SPEC_CONFIG_PATH (pspec))
        {
          widget =
            gimp_prop_file_chooser_button_new (config, pspec->name,
                                               g_param_spec_get_nick (pspec),
                                               GTK_FILE_CHOOSER_ACTION_OPEN);
        }
      else if (g_param_spec_get_qdata (pspec, multiline_quark))
        {
          GtkTextBuffer *buffer;
          GtkWidget     *view;

          buffer = gimp_prop_text_buffer_new (config, pspec->name, -1);
          view = gtk_text_view_new_with_buffer (buffer);
          g_object_unref (buffer);

          widget = gtk_scrolled_window_new (NULL, NULL);
          gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget),
                                               GTK_SHADOW_IN);
          gtk_container_add (GTK_CONTAINER (widget), view);
          gtk_widget_show (view);
        }
      else
        {
          widget = gimp_prop_entry_new (config, pspec->name, -1);
        }

      *label = g_param_spec_get_nick (pspec);
    }
  else if (G_IS_PARAM_SPEC_BOOLEAN (pspec))
    {
      widget = gimp_prop_check_button_new (config, pspec->name,
                                           g_param_spec_get_nick (pspec));
    }
  else if (G_IS_PARAM_SPEC_ENUM (pspec))
    {
      widget = gimp_prop_enum_combo_box_new (config, pspec->name, 0, 0);
      gimp_int_combo_box_set_label (GIMP_INT_COMBO_BOX (widget),
                                    g_param_spec_get_nick (pspec));
    }
  else if (GIMP_IS_PARAM_SPEC_RGB (pspec))
    {
      GtkWidget *button;

      widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);

      button = gimp_prop_color_button_new (config, pspec->name,
                                           g_param_spec_get_nick (pspec),
                                           128, 24,
                                           GIMP_COLOR_AREA_SMALL_CHECKS);
      gimp_color_button_set_update (GIMP_COLOR_BUTTON (button), TRUE);
      gimp_color_panel_set_context (GIMP_COLOR_PANEL (button), context);
      gtk_box_pack_start (GTK_BOX (widget), button, TRUE, TRUE, 0);
      gtk_widget_show (button);

      if (create_picker_func)
        {
          button = create_picker_func (picker_creator,
                                       pspec->name,
                                       GIMP_STOCK_COLOR_PICKER_GRAY,
                                       _("Pick color from the image"));
          gtk_box_pack_start (GTK_BOX (widget), button, FALSE, FALSE, 0);
          gtk_widget_show (button);
        }

      *label = g_param_spec_get_nick (pspec);
    }
  else
    {
      g_warning ("%s: not supported: %s (%s)\n", G_STRFUNC,
                 g_type_name (G_TYPE_FROM_INSTANCE (pspec)), pspec->name);
    }

  return widget;
}
コード例 #20
0
ファイル: arc.c プロジェクト: TVilaboa/Proyecto-Parser-C
static GtkWidget *
arc_get_properties(Arc *arc)
{
  GtkWidget *vbox;
  GtkWidget *hbox;
  GtkWidget *label;
  GtkWidget *color;
  GtkWidget *linestyle;
  GtkWidget *arrow;
  GtkWidget *line_width;
  GtkWidget *align;
  GtkAdjustment *adj;

  if (arc_properties_dialog == NULL) {
  
    arc_properties_dialog = g_new(ArcPropertiesDialog, 1);

    vbox = gtk_vbox_new(FALSE, 5);
    arc_properties_dialog->vbox = vbox;

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Line width:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    adj = (GtkAdjustment *) gtk_adjustment_new(0.1, 0.00, 10.0, 0.01, 0.0, 0.0);
    line_width = gtk_spin_button_new(adj, 1.0, 2);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(line_width), TRUE);
    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(line_width), TRUE);
    arc_properties_dialog->line_width = GTK_SPIN_BUTTON(line_width);
    gtk_box_pack_start(GTK_BOX (hbox), line_width, TRUE, TRUE, 0);
    gtk_widget_show (line_width);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Color:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    color = dia_color_selector_new();
    arc_properties_dialog->color = DIACOLORSELECTOR(color);
    gtk_box_pack_start (GTK_BOX (hbox), color, TRUE, TRUE, 0);
    gtk_widget_show (color);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Line style:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    linestyle = dia_line_style_selector_new();
    arc_properties_dialog->line_style = DIALINESTYLESELECTOR(linestyle);
    gtk_box_pack_start (GTK_BOX (hbox), linestyle, TRUE, TRUE, 0);
    gtk_widget_show (linestyle);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Start arrow:"));
    align = gtk_alignment_new(0.0,0.0,0.0,0.0);
    gtk_container_add(GTK_CONTAINER(align), label);
    gtk_box_pack_start (GTK_BOX (hbox), align, FALSE, TRUE, 0);
    gtk_widget_show (label);
    gtk_widget_show(align);
    arrow = dia_arrow_selector_new();
    arc_properties_dialog->start_arrow = DIAARROWSELECTOR(arrow);
    gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0);
    gtk_widget_show (arrow);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("End arrow:"));
    align = gtk_alignment_new(0.0,0.0,0.0,0.0);
    gtk_container_add(GTK_CONTAINER(align), label);
    gtk_box_pack_start (GTK_BOX (hbox), align, FALSE, TRUE, 0);
    gtk_widget_show (label);
    gtk_widget_show(align);
    arrow = dia_arrow_selector_new();
    arc_properties_dialog->end_arrow = DIAARROWSELECTOR(arrow);
    gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0);
    gtk_widget_show (arrow);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);


    gtk_widget_show (vbox);
  }

  gtk_spin_button_set_value(arc_properties_dialog->line_width, arc->line_width);
  dia_color_selector_set_color(arc_properties_dialog->color, &arc->arc_color);
  dia_line_style_selector_set_linestyle(arc_properties_dialog->line_style,
					arc->line_style, arc->dashlength);
  dia_arrow_selector_set_arrow(arc_properties_dialog->start_arrow,
			       arc->start_arrow);
  dia_arrow_selector_set_arrow(arc_properties_dialog->end_arrow,
			       arc->end_arrow);
  
  return arc_properties_dialog->vbox;
}
コード例 #21
0
/* Initialise the "game" section of the preferences box */
void init_game_page(GuiInfo *gui, GtkNotebook *window_notebook) {
	GtkWidget *gametablabel;
	GtkWidget *gamehbox;
	GtkWidget *gamevbox1;
	GtkWidget *gamevbox2;

	GtkWidget *bounce_entropy_label;
	GtkWidget *bounce_entropy_hbox;
	GtkObject *bounce_entropy_adjustment;
	GtkWidget *bounce_entropy_sbutton;
	GtkWidget *hide_pointer_check;

	GtkWidget *pause_frame;
	GtkWidget *pause_vbox;
	GtkWidget *pause_on_pointer_check;
	GtkWidget *pause_on_focus_check;
	GtkWidget *pause_on_pref_check;

	static LevelFrame lf;
	GList *levelfiles;
	
	GtkWidget *difficulty_frame;
	GtkWidget *difficulty_vbox;
	GtkWidget *difficulty_easy_radio;
	GtkWidget *difficulty_medium_radio;
	GtkWidget *difficulty_hard_radio;

	GtkTreeSelection *level_list_selection;
	GtkCellRenderer *renderer;
	GtkTreeViewColumn *column;

	/* Reset levelframe */
	memset(&lf, 0, sizeof(lf));

	/* Vbox and Tablabel - Constructor */
	gametablabel = gtk_label_new(_("Game"));
	gamehbox = gtk_hbox_new(FALSE, GNOME_PAD);
	gamevbox1 = gtk_vbox_new(FALSE, GNOME_PAD);
	gamevbox2 = gtk_vbox_new(FALSE, GNOME_PAD);

	/* Vbox and Tablabel - Packing */
	gtk_box_pack_start(GTK_BOX(gamehbox), gamevbox1, TRUE, TRUE, GNOME_PAD);
	gtk_box_pack_start(GTK_BOX(gamehbox), gamevbox2, TRUE, TRUE, GNOME_PAD);

	/* Vbox and Tablabel - Show */
	gtk_widget_show(gametablabel);
	gtk_widget_show(gamehbox);
	gtk_widget_show(gamevbox1);
	gtk_widget_show(gamevbox2);

	/* Level Frame - Constructor */
	lf.game = gui->game;
	lf.frame = gtk_frame_new(_("Levels"));
	lf.vbox = gtk_vbox_new(FALSE, 0);
	lf.level_list_store = gtk_list_store_new(1, G_TYPE_STRING);
	lf.level_list_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(
			GTK_TREE_MODEL(lf.level_list_store)));
	//lf.warning_label = gtk_label_new(_("Levels cannot be added or removed\nwhile the game is running."));
	lf.button_hbox = gtk_hbox_new(TRUE, 0);
	lf.level_list_hbox = gtk_hbox_new(TRUE, 0);
	lf.add_button = gtk_button_new_with_label(_("Add"));
	lf.remove_button = gtk_button_new_with_label(_("Remove"));
	lf.game = gui->game;
	lf.level_list_scrollpane = gtk_scrolled_window_new(NULL, NULL);
	lf.level_list_selection = NULL;

	renderer = gtk_cell_renderer_text_new ();
	column = gtk_tree_view_column_new_with_attributes ("",
		renderer, "text", 0, NULL);
	gtk_tree_view_append_column(lf.level_list_view, column);

	/* Level Frame - Settings */
	level_list_selection = gtk_tree_view_get_selection(lf.level_list_view);
	gtk_tree_selection_set_mode(level_list_selection, GTK_SELECTION_SINGLE);

	gtk_frame_set_shadow_type(GTK_FRAME(lf.frame), GTK_SHADOW_ETCHED_IN);
	//gtk_clist_set_shadow_type(GTK_CLIST(lf.clist), GTK_SHADOW_ETCHED_IN);
	//gtk_clist_set_column_width(GTK_CLIST(lf.clist), 0, 200);
	levelfiles = leveldata_titlelist();
	populate_level_list(&lf, levelfiles);
	g_list_free(levelfiles);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (lf.level_list_scrollpane), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
	gtk_tree_view_set_headers_visible(lf.level_list_view, FALSE);
	
	/* Level Frame - Signals */
	g_signal_connect(G_OBJECT(level_list_selection), "changed", G_CALLBACK(cb_level_list_changed), (gpointer) &lf);
	/*
	g_signal_connect_object(GTK_OBJECT(lf.add_button), "clicked", GTK_SIGNAL_FUNC(cb_level_add), (gpointer) &lf, 0);
	g_signal_connect_object(GTK_OBJECT(lf.remove_button), "clicked", GTK_SIGNAL_FUNC(cb_level_remove), (gpointer) &lf, 0);
	*/
	g_signal_connect(GTK_OBJECT(lf.add_button), "clicked", GTK_SIGNAL_FUNC(cb_level_add), (gpointer) &lf);
	g_signal_connect(GTK_OBJECT(lf.remove_button), "clicked", GTK_SIGNAL_FUNC(cb_level_remove), (gpointer) &lf);


	/* Level Frame - Sensitivity */
	if(gui->game->state != STATE_STOPPED) {
		gtk_widget_set_sensitive(GTK_WIDGET(lf.add_button), FALSE);
		gtk_widget_set_sensitive(GTK_WIDGET(lf.level_list_view), FALSE);
		gtk_widget_set_sensitive(GTK_WIDGET(lf.level_list_scrollpane), FALSE);
	}
	gtk_widget_set_sensitive(GTK_WIDGET(lf.remove_button), FALSE);

	/* Level Frame - Packing */	
	gtk_box_pack_start(GTK_BOX(gamevbox1), lf.frame, TRUE, TRUE, GNOME_PAD);
	gtk_container_add(GTK_CONTAINER(lf.frame), lf.vbox);
	//gtk_box_pack_start_defaults(GTK_BOX(lf.vbox), lf.warning_label);
	gtk_box_pack_start(GTK_BOX(lf.vbox), lf.level_list_hbox, TRUE, TRUE, GNOME_PAD);
	gtk_box_pack_start(GTK_BOX(lf.vbox), lf.button_hbox, FALSE, FALSE, GNOME_PAD);
	gtk_container_add(GTK_CONTAINER(lf.level_list_scrollpane), GTK_WIDGET(lf.level_list_view));
	gtk_box_pack_start(GTK_BOX(lf.level_list_hbox), lf.level_list_scrollpane, TRUE, TRUE, GNOME_PAD);
	gtk_box_pack_start(GTK_BOX(lf.button_hbox), lf.add_button, TRUE, TRUE, GNOME_PAD);
	gtk_box_pack_start(GTK_BOX(lf.button_hbox), lf.remove_button, TRUE, TRUE, GNOME_PAD);

	/* Level Frame - Show */	
	gtk_widget_show(lf.frame);
	gtk_widget_show(lf.vbox);
	gtk_widget_show(GTK_WIDGET(lf.level_list_view));
	//gtk_widget_show(lf.warning_label);
	gtk_widget_show(lf.button_hbox);
	gtk_widget_show(lf.level_list_hbox);
	gtk_widget_show(lf.level_list_scrollpane);
	gtk_widget_show(lf.add_button);
	gtk_widget_show(lf.remove_button);
	
	/* Difficulty frame and radio buttons - Constructor */
	if(gui->game->state == STATE_STOPPED)
		difficulty_frame = gtk_frame_new(_("Difficulty"));
	else
		difficulty_frame = gtk_frame_new(_("Difficulty (next game)"));

	difficulty_vbox = gtk_vbox_new(FALSE, 0);
	difficulty_easy_radio = gtk_radio_button_new_with_label(NULL,
			_("Easy"));
	difficulty_medium_radio = gtk_radio_button_new_with_label_from_widget(
			GTK_RADIO_BUTTON(difficulty_easy_radio), _("Medium"));
	difficulty_hard_radio = gtk_radio_button_new_with_label_from_widget(
			GTK_RADIO_BUTTON(difficulty_easy_radio), _("Hard"));

	/* Difficulty frame and radio buttons - Settings/Defaults */
	gtk_frame_set_shadow_type(GTK_FRAME(difficulty_frame), GTK_SHADOW_ETCHED_IN);
	switch(newflags->next_game_difficulty) {
		case DIFFICULTY_EASY :
			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_easy_radio), TRUE);
			break;
		case DIFFICULTY_MEDIUM :
			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_medium_radio), TRUE);
			break;
		case DIFFICULTY_HARD :
			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(difficulty_hard_radio), TRUE);
			break;
		default :
			g_assert_not_reached();
	}

	/* Difficulty frame and radio buttons - Signals */
	g_signal_connect(GTK_OBJECT(difficulty_easy_radio), "toggled",
			GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_EASY);
	g_signal_connect(GTK_OBJECT(difficulty_medium_radio), "toggled",
			GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_MEDIUM);
	g_signal_connect(GTK_OBJECT(difficulty_hard_radio), "toggled",
			GTK_SIGNAL_FUNC(cb_diff), (gpointer) DIFFICULTY_HARD);

	/* Difficulty frame and radio buttons - Packing */
	gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox),
			difficulty_easy_radio);
	gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox),
			difficulty_medium_radio);
	gtk_box_pack_start_defaults(GTK_BOX(difficulty_vbox),
			difficulty_hard_radio);
	gtk_container_add(GTK_CONTAINER(difficulty_frame), difficulty_vbox);
	gtk_box_pack_start(GTK_BOX(gamevbox2), difficulty_frame, TRUE, TRUE, GNOME_PAD);

	/* Difficulty frame and radio buttons - Show */
	gtk_widget_show(difficulty_frame);
	gtk_widget_show(difficulty_vbox);
	gtk_widget_show(difficulty_easy_radio);
	gtk_widget_show(difficulty_medium_radio);
	gtk_widget_show(difficulty_hard_radio);

	/* Automatic Pause Frame - Constructor */
	pause_frame = gtk_frame_new(_("Automatic Pause"));
	pause_vbox = gtk_vbox_new(FALSE, 0);
	pause_on_focus_check = gtk_check_button_new_with_label(_("When we lose keyboard focus"));
	pause_on_pointer_check = gtk_check_button_new_with_label(_("When the mouse pointer leaves the play window"));
	pause_on_pref_check = gtk_check_button_new_with_label(_("When the preferences dialog is active"));

	/* Automatic Pause Frame - Settings */
	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_focus_check), newflags->pause_on_focus);
	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_pref_check), newflags->pause_on_pref);
	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pause_on_pointer_check), newflags->pause_on_pointer);

	/* Automatic Pause Frame - Signals */
	g_signal_connect(GTK_OBJECT(pause_on_focus_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_focus);
	g_signal_connect(GTK_OBJECT(pause_on_pointer_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_pointer);
	g_signal_connect(GTK_OBJECT(pause_on_pref_check), "toggled", GTK_SIGNAL_FUNC(cb_checkbox_toggled), &newflags->pause_on_pref);

	/* Automatic Pause Frame - Packing */
	gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_focus_check);
	gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_pointer_check);
	gtk_box_pack_start_defaults(GTK_BOX(pause_vbox), pause_on_pref_check);
	gtk_container_add(GTK_CONTAINER(pause_frame), pause_vbox);
	gtk_box_pack_start(GTK_BOX(gamevbox2), pause_frame, TRUE, FALSE, GNOME_PAD);

	/* Automatic Pause Frame - Show */
	gtk_widget_show(pause_frame);
	gtk_widget_show(pause_vbox);
	gtk_widget_show(pause_on_pointer_check);
	gtk_widget_show(pause_on_focus_check);
	gtk_widget_show(pause_on_pref_check);

	/* Hide pointer */
	hide_pointer_check = gtk_check_button_new_with_label(
			_("Hide the pointer"));
	gtk_toggle_button_set_active(
			GTK_TOGGLE_BUTTON(hide_pointer_check),
			newflags->hide_pointer);
	gtk_box_pack_start(GTK_BOX(gamevbox2), hide_pointer_check,
			TRUE, FALSE, GNOME_PAD);
	gtk_widget_show(hide_pointer_check);
	g_signal_connect(GTK_OBJECT(hide_pointer_check), "toggled",
			GTK_SIGNAL_FUNC(cb_checkbox_toggled),
			&newflags->hide_pointer);
	
	/* Bounce Entropy - Constructor */
	bounce_entropy_label = gtk_label_new(_("Bounce Entropy (Experimental): "));
	bounce_entropy_hbox = gtk_hbox_new(FALSE, GNOME_PAD);
	bounce_entropy_adjustment = gtk_adjustment_new((gfloat)
			newflags->bounce_entropy, (gfloat) MIN_BOUNCE_ENTROPY,
			(gfloat) MAX_BOUNCE_ENTROPY, 1.0, 5.0, 1.0);
	bounce_entropy_sbutton = gtk_spin_button_new(
			GTK_ADJUSTMENT(bounce_entropy_adjustment), 1.0, 0);

	/* Bounce Entropy - Settings */
	gtk_spin_button_set_digits(GTK_SPIN_BUTTON(bounce_entropy_sbutton), 0);
	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(bounce_entropy_sbutton),
			FALSE);
	gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(bounce_entropy_sbutton),
			TRUE);

	/* Bounce Entropy - Signals */
	g_signal_connect(GTK_OBJECT(bounce_entropy_adjustment),
			"value_changed", GTK_SIGNAL_FUNC(cb_bounce_entropy),
			bounce_entropy_sbutton);

	/* Bounce Entropy - Packing */
	gtk_box_pack_start_defaults(GTK_BOX(bounce_entropy_hbox),
			bounce_entropy_label);
	gtk_box_pack_start_defaults(GTK_BOX(bounce_entropy_hbox),
			bounce_entropy_sbutton);
	gtk_box_pack_start(GTK_BOX(gamevbox2), bounce_entropy_hbox, TRUE,
			FALSE, GNOME_PAD);

	/* Bounce Entropy - Show */
	gtk_widget_show(bounce_entropy_label);
	gtk_widget_show(bounce_entropy_hbox);
	gtk_widget_show(bounce_entropy_sbutton);

	/* Add the game vbox to the dialog */
	gtk_notebook_append_page(GTK_NOTEBOOK(window_notebook),
			gamehbox, gametablabel);
}
コード例 #22
0
ファイル: gtimer.c プロジェクト: rancheng/gtimeutils
int main (int argc, char *argv[]) {
	GError *error_parsearg = NULL;
	GOptionContext *context;
	GtkWidget *window, *vbox, *hbox2;
	GtkAdjustment *sadj, *madj, *hadj;

#ifdef ENABLE_NLS
	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	textdomain (GETTEXT_PACKAGE);
#endif

	gtk_init (&argc, &argv);
	notify_init ("Gtimer");
	ca_context_create (&sound);

	context = g_option_context_new (_("- a simple countdown timer"));
	g_option_context_add_main_entries (context, entries, NULL);
#ifdef ENABLE_NLS
	g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
#endif
	if (!g_option_context_parse (context, &argc, &argv, &error_parsearg)) {
		g_fprintf (stderr, "%s\n", error_parsearg->message);
		exit(1);
	}

	vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
	hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);

	gtk_box_set_spacing (GTK_BOX (hbox2), 5);
	gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);

	timer_display = gtk_label_new (NULL);
	reset_display();
	
	sadj = gtk_adjustment_new (0, 0, 60, 1, 1, 0);
	madj = gtk_adjustment_new (0, 0, 60, 1, 1, 0);
	hadj = gtk_adjustment_new (0, 0, 24, 1, 1, 0);
	spin_seconds = gtk_spin_button_new (sadj, 1, 0);
	spin_minutes = gtk_spin_button_new (madj, 1, 0);
	spin_hours = gtk_spin_button_new (hadj, 1, 0);

	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spin_seconds), TRUE);
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_seconds), seconds);
	g_object_set (spin_seconds, "shadow-type", GTK_SHADOW_IN, NULL);
	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spin_minutes), TRUE);
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_minutes), minutes);
	g_object_set (spin_minutes, "shadow-type", GTK_SHADOW_IN, NULL);
	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spin_hours), TRUE);
	gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin_hours), hours);
	g_object_set (spin_hours, "shadow-type", GTK_SHADOW_IN, NULL);

	entry = gtk_entry_new();
	gtk_entry_set_text (GTK_ENTRY (entry), entry_text);
	
	button_timer = gtk_button_new();
	gtk_button_set_label (GTK_BUTTON (button_timer), _("Start"));
	button_reset = gtk_button_new_with_label (_("Reset"));
	gtk_widget_set_sensitive (button_reset, FALSE);

	gtk_box_pack_start (GTK_BOX (hbox1), spin_hours, TRUE, FALSE, 5);
	gtk_box_pack_start (GTK_BOX (hbox1), spin_minutes, TRUE, FALSE, 5);
	gtk_box_pack_start (GTK_BOX (hbox1), spin_seconds, TRUE, FALSE, 5);
	gtk_box_pack_start (GTK_BOX (vbox), timer_display, FALSE, TRUE, 5);
	gtk_box_pack_start (GTK_BOX (hbox2), button_timer, TRUE, TRUE, 0);
	gtk_box_pack_start (GTK_BOX (hbox2), button_reset, TRUE, TRUE, 0);
	gtk_container_add (GTK_CONTAINER (vbox), hbox1);
	gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, TRUE, 5);
	gtk_container_add (GTK_CONTAINER (vbox), hbox2);

	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title (GTK_WINDOW (window), "Gtimer");
	gtk_container_add (GTK_CONTAINER (window), vbox);
	gtk_widget_show_all (window);

	g_timeout_add_seconds (1, (GSourceFunc) timer_function, NULL);
	g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
	g_signal_connect (button_timer, "clicked", G_CALLBACK (on_timer_button_clicked), NULL);
	g_signal_connect (button_reset, "clicked", G_CALLBACK (on_reset_button_clicked), NULL);

	gtk_main();
	notify_uninit();
	ca_context_destroy (sound);
	g_option_context_free (context);
	return 0;
}
コード例 #23
0
/** \brief Create and initialise widgets for the radios tab.
 *
 * The widgets must be preloaded with values from config. If a config value
 * is NULL, sensible default values, eg. those from defaults.h should
 * be laoded.
 */
GtkWidget *sat_pref_conditions_create ()
{
     GtkWidget   *table;
     GtkWidget   *label;
     GtkWidget   *vbox;


     dirty = FALSE;
     reset = FALSE;

     table = gtk_table_new (14, 3, FALSE);
     gtk_table_set_row_spacings (GTK_TABLE (table), 10);
     gtk_table_set_col_spacings (GTK_TABLE (table), 5);

     /* minimum elevation */
     label = gtk_label_new (_("Minimum elevation"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 0, 1,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     minel = gtk_spin_button_new_with_range (1, 90, 1);
     gtk_widget_set_tooltip_text (minel,
                                _("Elevation threshold for passes.\n"\
                                   "Passes with maximum elevation below this limit "\
                                  "will be omitted"));
     gtk_spin_button_set_digits (GTK_SPIN_BUTTON (minel), 0);
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (minel), TRUE);
     gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (minel), FALSE);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (minel),
                                      sat_cfg_get_int (SAT_CFG_INT_PRED_MIN_EL));
     g_signal_connect (G_OBJECT (minel), "value-changed",
                           G_CALLBACK (spin_changed_cb), NULL);
     gtk_table_attach (GTK_TABLE (table), minel,
                           1, 2, 0, 1,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     label = gtk_label_new (_("[deg]"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           2, 3, 0, 1,
                           GTK_FILL | GTK_EXPAND,
                           GTK_SHRINK,
                           0, 0);
     
     /* separator */
     gtk_table_attach (GTK_TABLE (table),
                           gtk_hseparator_new (),
                           0, 3, 1, 2,
                           GTK_FILL | GTK_EXPAND,
                           GTK_SHRINK,
                           0, 0);

     label = gtk_label_new (NULL);
     gtk_label_set_markup (GTK_LABEL (label), _("<b>Multiple Passes:</b>"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 2, 3,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);

     /* number of passes */
     label = gtk_label_new (_("Number of passes to predict"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 3, 4,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     numpass = gtk_spin_button_new_with_range (5, 50, 1);
     gtk_widget_set_tooltip_text (numpass,
                                  _("The maximum number of passes to predict."));
     gtk_spin_button_set_digits (GTK_SPIN_BUTTON (numpass), 0);
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (numpass), TRUE);
     gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (numpass), FALSE);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (numpass),
                                      sat_cfg_get_int (SAT_CFG_INT_PRED_NUM_PASS));
     g_signal_connect (G_OBJECT (numpass), "value-changed",
                           G_CALLBACK (spin_changed_cb), NULL);
     gtk_table_attach (GTK_TABLE (table), numpass,
                           1, 2, 3, 4,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);

     /* lookahead */
     label = gtk_label_new (_("Passes should occur within"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 4, 5,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     lookahead = gtk_spin_button_new_with_range (1, 14, 1);
     gtk_widget_set_tooltip_text (lookahead,
                                _("Only passes that occur within the specified "\
                                  "number of days will be shown."));
     gtk_spin_button_set_digits (GTK_SPIN_BUTTON (lookahead), 0);
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (lookahead), TRUE);
     gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (lookahead), FALSE);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (lookahead),
                                      sat_cfg_get_int (SAT_CFG_INT_PRED_LOOK_AHEAD));
     g_signal_connect (G_OBJECT (lookahead), "value-changed",
                           G_CALLBACK (spin_changed_cb), NULL);
     gtk_table_attach (GTK_TABLE (table), lookahead,
                           1, 2, 4, 5,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     label = gtk_label_new (_("[days]"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           2, 3, 4, 5,
                           GTK_FILL | GTK_EXPAND,
                           GTK_SHRINK,
                           0, 0);
     
     /* separator */
     gtk_table_attach (GTK_TABLE (table),
                           gtk_hseparator_new (),
                           0, 3, 5, 6,
                           GTK_FILL | GTK_EXPAND,
                           GTK_SHRINK,
                           0, 0);


     label = gtk_label_new (NULL);
     gtk_label_set_markup (GTK_LABEL (label), _("<b>Pass Details:</b>"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 6, 7,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);

     /* time resolution */
     label = gtk_label_new (_("Time resolution"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 7, 8,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     res = gtk_spin_button_new_with_range (1, 600, 1);
     gtk_widget_set_tooltip_text (res,
                                _("Gpredict will try to show the pass details "\
                                  "with the specified time resolution."));
     gtk_spin_button_set_digits (GTK_SPIN_BUTTON (res), 0);
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (res), TRUE);
     gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (res), FALSE);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (res),
                                      sat_cfg_get_int (SAT_CFG_INT_PRED_RESOLUTION));
     g_signal_connect (G_OBJECT (res), "value-changed",
                           G_CALLBACK (spin_changed_cb), NULL);
     gtk_table_attach (GTK_TABLE (table), res,
                           1, 2, 7, 8,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     label = gtk_label_new (_("[sec]"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           2, 3, 7, 8,
                           GTK_FILL | GTK_EXPAND,
                           GTK_SHRINK,
                           0, 0);

     /* number of entries */
     label = gtk_label_new (_("Number of entries"));
     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
     gtk_table_attach (GTK_TABLE (table), label,
                           0, 1, 8, 9,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);
     nument = gtk_spin_button_new_with_range (10, 200, 1);
     gtk_widget_set_tooltip_text (nument,
                                  _("Gpredict will try to keep the number of rows " \
                                    "in the detailed prediction within this limit."));
     gtk_spin_button_set_digits (GTK_SPIN_BUTTON (nument), 0);
     gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (nument), TRUE);
     gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (nument), FALSE);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (nument),
                                      sat_cfg_get_int (SAT_CFG_INT_PRED_NUM_ENTRIES));
     g_signal_connect (G_OBJECT (nument), "value-changed",
                           G_CALLBACK (spin_changed_cb), NULL);
     gtk_table_attach (GTK_TABLE (table), nument,
                           1, 2, 8, 9,
                           GTK_FILL,
                           GTK_SHRINK,
                           0, 0);

    /* separator */
    gtk_table_attach (GTK_TABLE (table),
                      gtk_hseparator_new (),
                      0, 3, 9, 10,
                      GTK_FILL | GTK_EXPAND,
                      GTK_SHRINK,
                      0, 0);

    /* satellite visibility */
    label = gtk_label_new (NULL);
    gtk_label_set_markup (GTK_LABEL (label), _("<b>Satellite Visibility:</b>"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, 10, 11,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);

    /* twilight threshold */
    label = gtk_label_new (_("Twilight threshold"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, 11, 12,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);
    twspin = gtk_spin_button_new_with_range (-18, 0, 1);
    gtk_widget_set_tooltip_text (twspin,
                          _("Satellites are only considered visible if the elevation "\
                            "of the Sun is below the specified threshold.\n"\
                            "  \342\200\242 Astronomical: -18\302\260 to -12\302\260\n"\
                            "  \342\200\242 Nautical: -12\302\260 to -6\302\260\n"\
                            "  \342\200\242 Civil: -6\302\260 to 0\302\260"));
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (twspin), 0);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (twspin), TRUE);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (twspin), FALSE);
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (twspin),
                               sat_cfg_get_int (SAT_CFG_INT_PRED_TWILIGHT_THLD));
    g_signal_connect (G_OBJECT (twspin), "value-changed",
                      G_CALLBACK (spin_changed_cb), NULL);
    gtk_table_attach (GTK_TABLE (table), twspin,
                      1, 2, 11, 12,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);
    label = gtk_label_new (_("[deg]"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      2, 3, 11, 12,
                      GTK_FILL | GTK_EXPAND,
                      GTK_SHRINK,
                      0, 0);
    
    /* separator */
    gtk_table_attach (GTK_TABLE (table),
                      gtk_hseparator_new (),
                      0, 3, 12, 13,
                      GTK_FILL | GTK_EXPAND,
                      GTK_SHRINK,
                      0, 0);

    /* T0 for predictions */
    tzero = gtk_check_button_new_with_label (_("Always use real time for pass predictions"));
    gtk_widget_set_tooltip_text (tzero,
                                 _("Check this box if you want Gpredict to always use "\
                                   "the current (real) time as starting time when predicting "\
                                   "future satellite passes.\n\n"\
                                   "If you leave the box unchecked and the time controller is "\
                                   "active, Gpredict will use the time from the time controller "\
                                   "as starting time for predicting satellite passes."));
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tzero),
                                  sat_cfg_get_bool (SAT_CFG_BOOL_PRED_USE_REAL_T0));
    g_signal_connect (G_OBJECT (tzero), "toggled",
                      G_CALLBACK (spin_changed_cb), NULL);
     
    gtk_table_attach (GTK_TABLE (table), tzero, 0, 3, 13, 14,
                      GTK_FILL | GTK_EXPAND, GTK_SHRINK,
                      0, 0);
    
     /* create vertical box */
     vbox = gtk_vbox_new (FALSE, 0);
     gtk_container_set_border_width (GTK_CONTAINER (vbox), 20);
     gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);

     /* create RESET button */
     create_reset_button (GTK_BOX (vbox));


     return vbox;
}
コード例 #24
0
/** \brief Create and initialise widgets for the sky-at-glance tab.
 *
 * The widgets must be preloaded with values from config. If a config value
 * is NULL, sensible default values, eg. those from defaults.h should
 * be laoded.
 */
GtkWidget *sat_pref_sky_at_glance_create ()
{
    GtkWidget   *table;
    GtkWidget   *label;
    GtkWidget   *vbox;
    GdkColor     col;
    guint        rgb;   /* 0xRRGGBB encoded colour */
    guint        y;



    dirty = FALSE;
    reset = FALSE;

    table = gtk_table_new (16, 5, FALSE);
    gtk_table_set_row_spacings (GTK_TABLE (table), 5);
    gtk_table_set_col_spacings (GTK_TABLE (table), 5);


    label = gtk_label_new (NULL);
    gtk_label_set_markup (GTK_LABEL (label), _("<b>Time:</b>"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, 0, 1,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);

    /* number of hours */
    label = gtk_label_new (_("Find and show passes that occur within"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, 1, 2,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);
    timesp = gtk_spin_button_new_with_range (1, 24, 1);
    gtk_widget_set_tooltip_text (timesp,
                          _("The passes shown on the Sky at a Glance chart\n"\
                            "will begin within this number of hours."));
    gtk_spin_button_set_digits (GTK_SPIN_BUTTON (timesp), 0);
    gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (timesp), TRUE);
    gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (timesp), FALSE);
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (timesp),
                               sat_cfg_get_int (SAT_CFG_INT_SKYATGL_TIME));
    g_signal_connect (G_OBJECT (timesp), "value-changed",
                      G_CALLBACK (spin_changed_cb), NULL);
    gtk_table_attach (GTK_TABLE (table), timesp,
                      1, 2, 1, 2,
                      GTK_SHRINK, GTK_SHRINK,
                      0, 0);
    label = gtk_label_new (_("hours"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      2, 3, 1, 2,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);
    
    /* separator */
    gtk_table_attach (GTK_TABLE (table),
                      gtk_hseparator_new (),
                      0, 5, 2, 3,
                      GTK_FILL | GTK_EXPAND,
                      GTK_SHRINK,
                      0, 0);



    y = 3;

    label = gtk_label_new (NULL);
    gtk_label_set_markup (GTK_LABEL (label), _("<b>Colours:</b>"));
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y, y+1,
                      GTK_FILL,
                      GTK_SHRINK,
                      0, 0);

    /* colour 1 */
    label = gtk_label_new (_("Colour for satellite 1: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y+1, y+2,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col1 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col1), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col1), _("Select colour 1"));
    gtk_table_attach (GTK_TABLE (table), col1,
                      1, 2, y+1, y+2,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text ( col1,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_01);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col1), &col);
    g_signal_connect (col1, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 2 */
    label = gtk_label_new (_("Colour for satellite 2: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y+2, y+3,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col2 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col2), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col1), _("Select colour 2"));
    gtk_table_attach (GTK_TABLE (table), col2,
                      1, 2, y+2, y+3,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text ( col2,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_02);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col2), &col);
    g_signal_connect (col2, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 3 */
    label = gtk_label_new (_("Colour for satellite 3: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y+3, y+4,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col3 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col3), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col3), _("Select colour 3"));
    gtk_table_attach (GTK_TABLE (table), col3,
                      1, 2, y+3, y+4,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col3,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_03);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col3), &col);
    g_signal_connect (col3, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 4 */
    label = gtk_label_new (_("Colour for satellite 4: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y+4, y+5,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col4 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col4), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col4), _("Select colour 4"));
    gtk_table_attach (GTK_TABLE (table), col4,
                      1, 2, y+4, y+5,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col4,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_04);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col4), &col);
    g_signal_connect (col4, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 5 */
    label = gtk_label_new (_("Colour for satellite 5: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      0, 1, y+5, y+6,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col5 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col5), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col5), _("Select colour 5"));
    gtk_table_attach (GTK_TABLE (table), col5,
                      1, 2, y+5, y+6,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col5,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_05);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col5), &col);
    g_signal_connect (col5, "color-set", G_CALLBACK (colour_changed), NULL);


    /* colour 6 */
    label = gtk_label_new (_("Colour for satellite 6: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      3, 4, y+1, y+2,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col6 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col6), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col6), _("Select colour 6"));
    gtk_table_attach (GTK_TABLE (table), col6,
                      4, 5, y+1, y+2,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col6,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_06);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col6), &col);
    g_signal_connect (col6, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 7 */
    label = gtk_label_new (_("Colour for satellite 7: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      3, 4, y+2, y+3,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col7 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col7), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col7), _("Select colour 7"));
    gtk_table_attach (GTK_TABLE (table), col7,
                      4, 5, y+2, y+3,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col7,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_07);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col7), &col);
    g_signal_connect (col7, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 8 */
    label = gtk_label_new (_("Colour for satellite 8: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      3, 4, y+3, y+4,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col8 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col8), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col8), _("Select colour 8"));
    gtk_table_attach (GTK_TABLE (table), col8,
                      4, 5, y+3, y+4,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col8,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_08);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col8), &col);
    g_signal_connect (col8, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 9 */
    label = gtk_label_new (_("Colour for satellite 9: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      3, 4, y+4, y+5,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col9 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col9), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col9), _("Select colour 9"));
    gtk_table_attach (GTK_TABLE (table), col9,
                      4, 5, y+4, y+5,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col9,
                                 _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_09);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col9), &col);
    g_signal_connect (col9, "color-set", G_CALLBACK (colour_changed), NULL);

    /* colour 10 */
    label = gtk_label_new (_("Colour for satellite 10: "));
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
    gtk_table_attach (GTK_TABLE (table), label,
                      3, 4, y+5, y+6,
                      GTK_SHRINK, GTK_SHRINK, 0, 0);
    col10 = gtk_color_button_new ();
    gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (col10), FALSE);
    gtk_color_button_set_title (GTK_COLOR_BUTTON (col10), _("Select colour 10"));
    gtk_table_attach (GTK_TABLE (table), col10,
                      4, 5, y+5, y+6,
                      GTK_FILL , GTK_FILL, 0, 0);
    gtk_widget_set_tooltip_text (col10,
                          _("Click to select a colour"));
    rgb = sat_cfg_get_int (SAT_CFG_INT_SKYATGL_COL_10);

    rgb2gdk (rgb, &col);
    gtk_color_button_set_color (GTK_COLOR_BUTTON (col10), &col);
    g_signal_connect (col10, "color-set", G_CALLBACK (colour_changed), NULL);




    /* create vertical box */
    vbox = gtk_vbox_new (FALSE, 0);
    gtk_container_set_border_width (GTK_CONTAINER (vbox), 20);
    gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);

    /* create RESET button */
    create_reset_button (GTK_BOX (vbox));


    return vbox;

}
コード例 #25
0
ファイル: surfacedialog.cpp プロジェクト: Zekom/GtkRadiant
GtkWidget* create_SurfaceInspector( void ){

	GtkWidget *label;
	GtkObject *adjustment;

	GtkWidget *table1;
	GtkWidget *table2;

	GtkWidget *frame1;
	GtkWidget *frame2;

	GtkWidget *vbox1;
	GtkWidget *hbox1;

	SurfaceInspector = gtk_window_new( GTK_WINDOW_TOPLEVEL );
	gtk_container_set_border_width( GTK_CONTAINER( SurfaceInspector ), 4 );
	gtk_window_set_title( GTK_WINDOW( SurfaceInspector ), "Surface Inspector" );

	SetWinPos_from_Prefs( SurfaceInspector );

	vbox1 = gtk_vbox_new( FALSE, 5 );
	gtk_widget_show( vbox1 );
	gtk_container_add( GTK_CONTAINER( SurfaceInspector ), vbox1 );

	hbox1 = gtk_hbox_new( FALSE, 5 );
	gtk_widget_show( hbox1 );
	gtk_container_add( GTK_CONTAINER( vbox1 ), hbox1 );
	gtk_container_set_border_width( GTK_CONTAINER( hbox1 ), 4 );

	label = gtk_label_new( "Texture: " );
	gtk_widget_show( label );
	gtk_box_pack_start( GTK_BOX( hbox1 ), label, FALSE, FALSE, 0 );
	gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );

	texture_combo = gtk_combo_new();
	g_object_set_data( G_OBJECT( GTK_COMBO( texture_combo )->popwin ),
					   "KeepMeAround", texture_combo );
	gtk_combo_disable_activate( (GtkCombo*) texture_combo );
	gtk_widget_show( texture_combo );
	gtk_box_pack_start( GTK_BOX( hbox1 ), texture_combo, TRUE, TRUE, 0 );

	texture_combo_entry = GTK_COMBO( texture_combo )->entry;
	gtk_widget_show( texture_combo_entry );
	gtk_entry_set_max_length( GTK_ENTRY( texture_combo_entry ), 1024 );

	frame1 = gtk_frame_new( "Surface" );
	gtk_widget_show( frame1 );
	gtk_container_add( GTK_CONTAINER( vbox1 ), frame1 );

	table1 = gtk_table_new( 7, 3, FALSE );
	gtk_widget_show( table1 );
	gtk_table_set_col_spacings( GTK_TABLE( table1 ), 5 );
	gtk_table_set_row_spacings( GTK_TABLE( table1 ), 5 );
	gtk_container_set_border_width( GTK_CONTAINER( table1 ), 5 );
	gtk_container_add( GTK_CONTAINER( frame1 ), table1 );

	label = gtk_label_new( "Step" );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 2, 3, 0, 1,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	label = gtk_label_new( "Value" );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 1, 2, 0, 1,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_misc_set_alignment( GTK_MISC( label ), 0.5, 1 );

	label = gtk_label_new( "Horizontal shift: " );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 0, 1, 1, 2,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( GTK_FILL ), 0, 0 );

	label = gtk_label_new( "Vertical shift: " );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 0, 1, 2, 3,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( GTK_FILL ), 0, 0 );

	label = gtk_label_new( "Horizontal scale: " );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 0, 1, 3, 4,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( GTK_FILL ), 0, 0 );

	label = gtk_label_new( "Vertical scale: " );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 0, 1, 4, 5,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( GTK_FILL ), 0, 0 );

	label = gtk_label_new( "Rotate: " );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table1 ), label, 0, 1, 5, 6,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( GTK_FILL ), 0, 0 );

	// Value Spins
	adjustment = gtk_adjustment_new( 0.0, -8192.0, 8192.0, 2.0, 8.0, 0.0 );
	hshift_value_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 2 );
	gtk_widget_show( hshift_value_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), hshift_value_spinbutton, 1, 2, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( hshift_value_spinbutton ), GTK_UPDATE_IF_VALID );
	gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( hshift_value_spinbutton ), TRUE );

	adjustment = gtk_adjustment_new( 0.0, -8192.0, 8192.0, 2.0, 8.0, 0.0 );
	vshift_value_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 2 );
	gtk_widget_show( vshift_value_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), vshift_value_spinbutton, 1, 2, 2, 3,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( vshift_value_spinbutton ), GTK_UPDATE_IF_VALID );
	gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( vshift_value_spinbutton ), TRUE );

	adjustment = gtk_adjustment_new( 0.0, -1024.0, 1024.0, 1.0, 4.0, 0.0 );
	hscale_value_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 4 );
	gtk_widget_show( hscale_value_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), hscale_value_spinbutton, 1, 2, 3, 4,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( hscale_value_spinbutton ), GTK_UPDATE_IF_VALID );
	gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( hscale_value_spinbutton ), TRUE );

	adjustment = gtk_adjustment_new( 0.0, -1024.0, 1024.0, 1.0, 4.0, 0.0 );
	vscale_value_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 4 );
	gtk_widget_show( vscale_value_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), vscale_value_spinbutton, 1, 2, 4, 5,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( vscale_value_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 0.0, -360.0, 360.0, 1.0, 10.0, 0.0 );
	rotate_value_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 0 );
	gtk_widget_show( rotate_value_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), rotate_value_spinbutton, 1, 2, 5, 6,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( rotate_value_spinbutton ), GTK_UPDATE_IF_VALID );
	gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( rotate_value_spinbutton ), TRUE );

	// Step Spins
	adjustment = gtk_adjustment_new( 0.0, -8192.0, 8192.0, 2.0, 8.0, 0.0 );
	hshift_step_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 2 );
	gtk_widget_show( hshift_step_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), hshift_step_spinbutton, 2, 3, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( hshift_step_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 0.0, -8192.0, 8192.0, 2.0, 8.0, 0.0 );
	vshift_step_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 2 );
	gtk_widget_show( vshift_step_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), vshift_step_spinbutton, 2, 3, 2, 3,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( vshift_step_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 0.0, -1024.0, 1024.0, 1.0, 4.0, 0.0 );
	hscale_step_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 4 );
	gtk_widget_show( hscale_step_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), hscale_step_spinbutton, 2, 3, 3, 4,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( hscale_step_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 0.0, -1024.0, 1024.0, 1.0, 4.0, 0.0 );
	vscale_step_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 4 );
	gtk_widget_show( vscale_step_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), vscale_step_spinbutton, 2, 3, 4, 5,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( vscale_step_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 0.0, -360.0, 360.0, 1.0, 10.0, 0.0 );
	rotate_step_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 2 );
	gtk_widget_show( rotate_step_spinbutton );
	gtk_table_attach( GTK_TABLE( table1 ), rotate_step_spinbutton, 2, 3, 5, 6,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( rotate_step_spinbutton ), GTK_UPDATE_IF_VALID );

	match_grid_button = gtk_button_new_with_mnemonic( "Match Grid" );
	gtk_widget_show( match_grid_button );
	gtk_table_attach( GTK_TABLE( table1 ), match_grid_button, 2, 3, 6, 7,
					  (GtkAttachOptions) ( GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	frame2 = gtk_frame_new( "Tools" );
	gtk_widget_show( frame2 );
	gtk_container_add( GTK_CONTAINER( vbox1 ), frame2 );

	table2 = gtk_table_new( 2, 4, TRUE );
	gtk_widget_show( table2 );
	gtk_table_set_col_spacings( GTK_TABLE( table2), 5 );
	gtk_table_set_row_spacings( GTK_TABLE( table2 ), 0 );
	gtk_container_set_border_width( GTK_CONTAINER( table2 ), 5 );
	gtk_container_add( GTK_CONTAINER( frame2 ), table2 );

	label = gtk_label_new( "Height" );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table2 ), label, 3, 4, 0, 1,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	label = gtk_label_new( "Width" );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table2 ), label, 2, 3, 0, 1,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	label = gtk_label_new( "Brush" );
	gtk_widget_show( label );
	gtk_table_attach( GTK_TABLE( table2 ), label, 0, 2, 0, 1,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	adjustment = gtk_adjustment_new( 1, 1, 32, 1, 10, 0 );
	fit_height_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 0 );
	gtk_widget_show( fit_height_spinbutton );
	gtk_table_attach( GTK_TABLE( table2 ), fit_height_spinbutton, 3, 4, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( fit_height_spinbutton ), TRUE );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( fit_height_spinbutton ), GTK_UPDATE_IF_VALID );

	adjustment = gtk_adjustment_new( 1, 1, 32, 1, 10, 0 );
	fit_width_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT( adjustment ), 1, 0 );
	gtk_widget_show( fit_width_spinbutton );
	gtk_table_attach( GTK_TABLE( table2 ), fit_width_spinbutton, 2, 3, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );
	gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( fit_width_spinbutton ), TRUE );
	gtk_spin_button_set_update_policy( GTK_SPIN_BUTTON( fit_width_spinbutton ), GTK_UPDATE_IF_VALID );

	fit_button = gtk_button_new_with_mnemonic( "Fit" );
	gtk_widget_show( fit_button );
	gtk_table_attach( GTK_TABLE( table2 ), fit_button, 1, 2, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	axial_button = gtk_button_new_with_mnemonic( "Axial" );
	gtk_widget_show( axial_button );
	gtk_table_attach( GTK_TABLE( table2 ), axial_button, 0, 1, 1, 2,
					  (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
					  (GtkAttachOptions) ( 0 ), 0, 0 );

	// Add the SURF_ and CONTENTS_ flags frame
	create_SurfaceFlagsFrame( vbox1 );

	g_signal_connect( (gpointer) SurfaceInspector,
					  "delete_event",
					  G_CALLBACK( delete_event_callback ),
					  NULL );
	g_signal_connect( (gpointer) SurfaceInspector, "destroy",
					  G_CALLBACK( gtk_widget_destroy ),
					  NULL );
	g_signal_connect( (gpointer) SurfaceInspector, "key_press_event",
					  G_CALLBACK( surface_inspector_key_press_event ),
					  NULL );

	g_signal_connect( (gpointer) texture_combo_entry, "key_press_event",
					  G_CALLBACK( on_texture_combo_entry_key_press_event ),
					  NULL );
	g_signal_connect( (gpointer) texture_combo_entry, "activate",
					  G_CALLBACK( on_texture_combo_entry_activate ),
					  NULL );

	g_signal_connect( (gpointer) hshift_value_spinbutton, "value_changed",
					  G_CALLBACK( on_hshift_value_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) vshift_value_spinbutton, "value_changed",
					  G_CALLBACK( on_vshift_value_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) hscale_value_spinbutton, "value_changed",
					  G_CALLBACK( on_hscale_value_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) vscale_value_spinbutton, "value_changed",
					  G_CALLBACK( on_vscale_value_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) rotate_value_spinbutton, "value_changed",
					  G_CALLBACK( on_rotate_value_spinbutton_value_changed ),
					  NULL );

	g_signal_connect( (gpointer) hshift_step_spinbutton, "value_changed",
					  G_CALLBACK( on_hshift_step_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) vshift_step_spinbutton, "value_changed",
					  G_CALLBACK( on_vshift_step_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) hscale_step_spinbutton, "value_changed",
					  G_CALLBACK( on_hscale_step_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) vscale_step_spinbutton, "value_changed",
					  G_CALLBACK( on_vscale_step_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) rotate_step_spinbutton, "value_changed",
					  G_CALLBACK( on_rotate_step_spinbutton_value_changed ),
					  NULL );

	g_signal_connect( (gpointer) match_grid_button, "clicked",
					  G_CALLBACK( on_match_grid_button_clicked ),
					  NULL );

	g_signal_connect( (gpointer) fit_width_spinbutton, "value_changed",
					  G_CALLBACK( on_fit_width_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) fit_height_spinbutton, "value_changed",
					  G_CALLBACK( on_fit_height_spinbutton_value_changed ),
					  NULL );
	g_signal_connect( (gpointer) fit_button, "clicked",
					  G_CALLBACK( on_fit_button_clicked ),
					  NULL );

	g_signal_connect( (gpointer) axial_button, "clicked",
					  G_CALLBACK( on_axial_button_clicked ),
					  NULL );

	return SurfaceInspector;
}
コード例 #26
0
GtkWidget *AP_UnixDialog_Lists::_constructWindowContents (void)
{
	GtkWidget *vbox2;
	GtkWidget *hbox2;
	GtkWidget *vbox4;
	GtkWidget *table1;
	GtkWidget *style_om;
	GtkWidget *type_om;
	GtkWidget *type_lb;
	GtkWidget *style_lb;
	GtkWidget *customized_cb;
	GtkWidget *frame1;
	GtkWidget *table2;
	GtkComboBox *font_om;
	GtkListStore *font_om_menu;
	GtkWidget *format_en;
	GtkWidget *decimal_en;
	GtkAdjustment *start_sb_adj;
	GtkWidget *start_sb;
	GtkAdjustment *text_align_sb_adj;
	GtkWidget *text_align_sb;
	GtkAdjustment *label_align_sb_adj;
	GtkWidget *label_align_sb;
	GtkWidget *format_lb;
	GtkWidget *font_lb;
	GtkWidget *delimiter_lb;
	GtkWidget *start_at_lb;
	GtkWidget *text_align_lb;
	GtkWidget *label_align_lb;
	GtkWidget *vbox3;
	GtkWidget *preview_lb;
	GtkWidget *hbox1;
	GSList *action_group = NULL;
	GtkWidget *start_list_rb;
	GtkWidget *apply_list_rb;
	GtkWidget *resume_list_rb;
	GtkWidget *preview_area;
	GtkWidget *preview_frame;

	const XAP_StringSet * pSS = m_pApp->getStringSet();
	UT_UTF8String s;
	GtkWidget * wNoteBook = NULL;

	vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	gtk_widget_show (vbox2);
	if(!isModal())
	{

// Note Book creation

		wNoteBook = gtk_notebook_new ();
		gtk_widget_show(wNoteBook);

// Container for the lists
		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_PageProperties,s);
		GtkWidget * lbPageLists = gtk_label_new(s.utf8_str());
		gtk_widget_show(lbPageLists);
		gtk_notebook_append_page(GTK_NOTEBOOK(wNoteBook),vbox2,lbPageLists);

		m_iPageLists = gtk_notebook_page_num(GTK_NOTEBOOK(wNoteBook),vbox2);

// Container for Text Folding
		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_PageFolding,s);
		GtkWidget * lbPageFolding = gtk_label_new(s.utf8_str());
		GtkWidget * wFoldingTable = gtk_table_new(6,3,FALSE);
		gtk_widget_show(lbPageFolding);
		gtk_widget_show(wFoldingTable);
		gtk_notebook_append_page(GTK_NOTEBOOK(wNoteBook),wFoldingTable,lbPageFolding);

		m_iPageFold = gtk_notebook_page_num(GTK_NOTEBOOK(wNoteBook),wFoldingTable);

// Left Spacing Here

		GtkWidget * lbLeftSpacer = gtk_label_new("");
		gtk_misc_set_padding(GTK_MISC(lbLeftSpacer),8,0);
		gtk_table_attach(GTK_TABLE(wFoldingTable),lbLeftSpacer,0,1,0,6,GTK_SHRINK,GTK_FILL,0,0);
		gtk_widget_show(lbLeftSpacer);

// Bold markup
		GtkWidget * lbFoldHeading = gtk_label_new("<b>%s</b>");
		gtk_label_set_use_markup(GTK_LABEL(lbFoldHeading),TRUE);

		localizeLabelMarkup(lbFoldHeading,pSS,AP_STRING_ID_DLG_Lists_FoldingLevelexp);
		gtk_table_attach(GTK_TABLE(wFoldingTable),lbFoldHeading,1,3,0,1,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(lbFoldHeading);

// Mid Left Spacing Here

		GtkWidget * lbMidLeftSpacer = gtk_label_new("");
		gtk_misc_set_padding(GTK_MISC(lbMidLeftSpacer),8,0);
		gtk_table_attach(GTK_TABLE(wFoldingTable),lbMidLeftSpacer,1,2,1,6,GTK_SHRINK,GTK_FILL,0,0);
		gtk_widget_show(lbMidLeftSpacer);

		m_vecFoldCheck.clear();
		m_vecFoldID.clear();
		UT_uint32 ID =0;
// RadioButtons
		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_FoldingLevel0,s);
		
		GtkWidget * wF = gtk_radio_button_new_with_label(NULL, s.utf8_str());
		GSList *wG = gtk_radio_button_get_group(GTK_RADIO_BUTTON(wF));
		g_object_set_data(G_OBJECT(wF),"level",(gpointer)"0");
		ID = g_signal_connect(G_OBJECT(wF),
						  "toggled",
						 G_CALLBACK(s_FoldCheck_changed),
						 (gpointer) this);
		gtk_table_attach(GTK_TABLE(wFoldingTable),wF,2,3,1,2,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(wF);
		m_vecFoldCheck.addItem(wF);
		m_vecFoldID.addItem(ID);

		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_FoldingLevel1,s);
		wF = gtk_radio_button_new_with_label(wG, s.utf8_str());
		wG = gtk_radio_button_get_group(GTK_RADIO_BUTTON(wF));
		g_object_set_data(G_OBJECT(wF),"level",(gpointer)"1");
		ID = g_signal_connect(G_OBJECT(wF),
						  "toggled",
						 G_CALLBACK(s_FoldCheck_changed),
						 (gpointer) this);
		gtk_table_attach(GTK_TABLE(wFoldingTable),wF,2,3,2,3,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(wF);
		m_vecFoldCheck.addItem(wF);
		m_vecFoldID.addItem(ID);

		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_FoldingLevel2,s);
		wF = gtk_radio_button_new_with_label(wG, s.utf8_str());
		wG = gtk_radio_button_get_group(GTK_RADIO_BUTTON(wF));
		g_object_set_data(G_OBJECT(wF),"level",(gpointer)"2");
		ID = g_signal_connect(G_OBJECT(wF),
						  "toggled",
						 G_CALLBACK(s_FoldCheck_changed),
						 (gpointer) this);
		gtk_table_attach(GTK_TABLE(wFoldingTable),wF,2,3,3,4,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(wF);
		m_vecFoldCheck.addItem(wF);
		m_vecFoldID.addItem(ID);

		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_FoldingLevel3,s);
		wF = gtk_radio_button_new_with_label(wG, s.utf8_str());
		wG = gtk_radio_button_get_group(GTK_RADIO_BUTTON(wF));
		g_object_set_data(G_OBJECT(wF),"level",(gpointer)"3");
		ID = g_signal_connect(G_OBJECT(wF),
						  "toggled",
						 G_CALLBACK(s_FoldCheck_changed),
						 (gpointer) this);
		gtk_table_attach(GTK_TABLE(wFoldingTable),wF,2,3,4,5,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(wF);
		m_vecFoldCheck.addItem(wF);
		m_vecFoldID.addItem(ID);

		pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_FoldingLevel4,s);
		wF = gtk_radio_button_new_with_label(wG, s.utf8_str());
		g_object_set_data(G_OBJECT(wF),"level",(gpointer)"4");
		ID = g_signal_connect(G_OBJECT(wF),
						  "toggled",
						 G_CALLBACK(s_FoldCheck_changed),
						 (gpointer) this);
		gtk_table_attach(GTK_TABLE(wFoldingTable),wF,2,3,5,6,GTK_FILL,GTK_EXPAND,0,0);
		gtk_widget_show(wF);
		m_vecFoldCheck.addItem(wF);
		m_vecFoldID.addItem(ID);
		gtk_widget_show(wFoldingTable);

		gtk_notebook_set_current_page(GTK_NOTEBOOK(wNoteBook),m_iPageLists);
	}

// List Page
	gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);

	hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
	gtk_widget_show (hbox2);
	gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0);

	vbox4 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
	gtk_widget_show (vbox4);
	gtk_box_pack_start (GTK_BOX (hbox2), vbox4, FALSE, TRUE, 0);

	table1 = gtk_table_new (3, 2, FALSE);
	gtk_widget_show (table1);
	gtk_box_pack_start (GTK_BOX (vbox4), table1, FALSE, TRUE, 0);
	gtk_table_set_row_spacings (GTK_TABLE (table1), 4);

	style_om = gtk_combo_box_text_new();
	gtk_widget_show (style_om);
	gtk_table_attach (GTK_TABLE (table1), style_om, 1, 2, 1, 2,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);

	m_wListStyleNone_menu = gtk_list_store_new(2, G_TYPE_STRING, 
											   G_TYPE_INT);
	_fillNoneStyleMenu(m_wListStyleNone_menu.obj());
	m_wListStyleNumbered_menu = gtk_list_store_new (2, G_TYPE_STRING, 
													G_TYPE_INT);
	_fillNumberedStyleMenu(m_wListStyleNumbered_menu.obj());
	m_wListStyleBulleted_menu = gtk_list_store_new(2, G_TYPE_STRING,
												   G_TYPE_INT);
	_fillBulletedStyleMenu(m_wListStyleBulleted_menu.obj());

	// This is the default list. Change if the list style changes
	//
	m_wListStyle_menu = m_wListStyleNumbered_menu;

	gtk_combo_box_set_model(GTK_COMBO_BOX (style_om), 
							GTK_TREE_MODEL(m_wListStyleNumbered_menu.obj()));

	type_om = gtk_combo_box_text_new();
	gtk_widget_show (type_om);
	gtk_table_attach (GTK_TABLE (table1), type_om, 1, 2, 0, 1,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Type_none,s);
	gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_om), s.utf8_str());
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Type_bullet,s);
	gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_om), s.utf8_str());
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Type_numbered,s);
	gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_om), s.utf8_str());
	gtk_combo_box_set_active(GTK_COMBO_BOX(type_om), 0);

	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Type,s);
	type_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (type_lb);
	gtk_table_attach (GTK_TABLE (table1), type_lb, 0, 1, 0, 1,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (type_lb), 0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Style,s);
	style_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (style_lb);
	gtk_table_attach (GTK_TABLE (table1), style_lb, 0, 1, 1, 2,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (style_lb), 0, 0.5);
	
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_SetDefault,s);
	customized_cb = gtk_dialog_add_button (GTK_DIALOG(m_wMainWindow), s.utf8_str(), BUTTON_RESET);
	gtk_widget_show (customized_cb);

	/* todo
	gtk_table_attach (GTK_TABLE (table1), customized_cb, 0, 2, 2, 3,
					  (GtkAttachOptions) (GTK_SHRINK),
					  (GtkAttachOptions) (0), 0, 0);
	*/
	
	frame1 = gtk_frame_new (NULL);
	gtk_frame_set_shadow_type(GTK_FRAME(frame1), GTK_SHADOW_NONE);
	//gtk_widget_show (frame1);
	gtk_box_pack_start (GTK_BOX (vbox4), frame1, TRUE, TRUE, 0);

	table2 = gtk_table_new (6, 2, FALSE);
	gtk_widget_show (table2);
	gtk_container_add (GTK_CONTAINER (frame1), table2);
	gtk_container_set_border_width (GTK_CONTAINER (table2), 4);
	gtk_widget_set_sensitive (table2, TRUE);
	gtk_table_set_row_spacings (GTK_TABLE (table2), 4);
	gtk_table_set_col_spacings (GTK_TABLE (table2), 4);

	font_om_menu = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
	_fillFontMenu(font_om_menu);

	font_om = GTK_COMBO_BOX(gtk_combo_box_new());
	gtk_combo_box_set_model(font_om, GTK_TREE_MODEL(font_om_menu));
	gtk_widget_show (GTK_WIDGET(font_om));
	gtk_table_attach (GTK_TABLE (table2), GTK_WIDGET(font_om), 1, 2, 1, 2,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);

	format_en = gtk_entry_new ();
	gtk_entry_set_max_length(GTK_ENTRY(format_en), 20);
	gtk_widget_show (format_en);
	gtk_table_attach (GTK_TABLE (table2), format_en, 1, 2, 0, 1,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_entry_set_text (GTK_ENTRY (format_en), "%L");

	decimal_en = gtk_entry_new ();
	gtk_widget_show (decimal_en);
	gtk_table_attach (GTK_TABLE (table2), decimal_en, 1, 2, 2, 3,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_entry_set_text (GTK_ENTRY (format_en), "");

	start_sb_adj = (GtkAdjustment*)gtk_adjustment_new (1, 0, G_MAXINT32, 1, 10, 10);
	start_sb = gtk_spin_button_new (GTK_ADJUSTMENT (start_sb_adj), 1, 0);
	gtk_widget_show (start_sb);
	gtk_table_attach (GTK_TABLE (table2), start_sb, 1, 2, 3, 4,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);

	text_align_sb_adj = (GtkAdjustment*)gtk_adjustment_new (0.25, 0, 10, 0.01, 0.2, 1);
	text_align_sb = gtk_spin_button_new (GTK_ADJUSTMENT (text_align_sb_adj), 0.05, 2);
	gtk_widget_show (text_align_sb);
	gtk_table_attach (GTK_TABLE (table2), text_align_sb, 1, 2, 4, 5,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (text_align_sb), TRUE);
	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (text_align_sb), TRUE);

	label_align_sb_adj = (GtkAdjustment*)gtk_adjustment_new (0, 0, 10, 0.01, 0.2, 1);
	label_align_sb = gtk_spin_button_new (GTK_ADJUSTMENT (label_align_sb_adj), 0.05, 2);
	gtk_widget_show (label_align_sb);
	gtk_table_attach (GTK_TABLE (table2), label_align_sb, 1, 2, 5, 6,
					  (GtkAttachOptions) (GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (label_align_sb), TRUE);
	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (label_align_sb), TRUE);

	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Format,s);
	format_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (format_lb);
	gtk_table_attach (GTK_TABLE (table2), format_lb, 0, 1, 0, 1,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (format_lb), 0.0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Font,s);
	font_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (font_lb);
	gtk_table_attach (GTK_TABLE (table2), font_lb, 0, 1, 1, 2,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (font_lb), 0.0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_DelimiterString,s);
	delimiter_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (delimiter_lb);
	gtk_table_attach (GTK_TABLE (table2), delimiter_lb, 0, 1, 2, 3,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (delimiter_lb), 0.0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Start,s);
	start_at_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (start_at_lb);
	gtk_table_attach (GTK_TABLE (table2), start_at_lb, 0, 1, 3, 4,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (start_at_lb), 0.0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Align,s);
	text_align_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (text_align_lb);
	gtk_table_attach (GTK_TABLE (table2), text_align_lb, 0, 1, 4, 5,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (text_align_lb), 0.0, 0.5);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Indent,s);
	label_align_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (label_align_lb);
	gtk_table_attach (GTK_TABLE (table2), label_align_lb, 0, 1, 5, 6,
					  (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
					  (GtkAttachOptions) (0), 0, 0);
	gtk_misc_set_alignment (GTK_MISC (label_align_lb), 0.0, 0.5);

	vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	gtk_widget_show (vbox3);
	gtk_box_pack_start (GTK_BOX (hbox2), vbox3, TRUE, TRUE, 0);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Preview,s);
	preview_lb = gtk_label_new (s.utf8_str());
	gtk_widget_show (preview_lb);
	gtk_box_pack_start (GTK_BOX (vbox3), preview_lb, FALSE, FALSE, 0);
	gtk_misc_set_alignment (GTK_MISC (preview_lb), 0.0, 0.5);

	preview_frame = gtk_frame_new (NULL);
	gtk_widget_show (preview_frame);
	gtk_box_pack_start (GTK_BOX (vbox3), preview_frame, TRUE, TRUE, 0);
	gtk_container_set_border_width (GTK_CONTAINER (preview_frame), 3);
	gtk_frame_set_shadow_type (GTK_FRAME (preview_frame), GTK_SHADOW_NONE);

	preview_area = createDrawingArea ();
	gtk_widget_set_size_request (preview_area,180,225);
	gtk_widget_show (preview_area);
	gtk_container_add (GTK_CONTAINER (preview_frame), preview_area);

	hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
	if(!isModal())
		gtk_widget_show (hbox1);
	gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Start_New,s);
	start_list_rb = gtk_radio_button_new_with_label (action_group, s.utf8_str());
	action_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (start_list_rb));
	if(!isModal())
		gtk_widget_show (start_list_rb);
	gtk_box_pack_start (GTK_BOX (hbox1), start_list_rb, FALSE, FALSE, 0);
	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (start_list_rb), TRUE);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Apply_Current,s);
	apply_list_rb = gtk_radio_button_new_with_label (action_group, s.utf8_str());
	action_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (apply_list_rb));
	if(!isModal())
		gtk_widget_show (apply_list_rb);
	gtk_box_pack_start (GTK_BOX (hbox1), apply_list_rb, FALSE, FALSE, 0);
	pSS->getValueUTF8(AP_STRING_ID_DLG_Lists_Resume,s);
	resume_list_rb = gtk_radio_button_new_with_label (action_group, s.utf8_str());
	action_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resume_list_rb));
	if(!isModal())
		gtk_widget_show (resume_list_rb);
	gtk_box_pack_start (GTK_BOX (hbox1), resume_list_rb, FALSE, FALSE, 0);

	// Save useful widgets in member variables
	if(isModal())
	{
		m_wContents = vbox2;
	}
	else
	{
		m_wContents = wNoteBook;
	}
	m_wStartNewList = start_list_rb;
	m_wStartNew_label = gtk_bin_get_child(GTK_BIN(start_list_rb));
	m_wApplyCurrent = apply_list_rb;
	m_wStartSubList = resume_list_rb;
	m_wStartSub_label = gtk_bin_get_child(GTK_BIN(resume_list_rb));
	m_wRadioGroup = action_group;
	m_wPreviewArea = preview_area;
	m_wDelimEntry = format_en;
	m_oAlignList_adj = text_align_sb_adj;
	m_wAlignListSpin = text_align_sb;
	m_oIndentAlign_adj = label_align_sb_adj;
	m_wIndentAlignSpin = label_align_sb;
	m_wDecimalEntry = decimal_en;
	m_oStartSpin_adj = start_sb_adj;
	m_wStartSpin = start_sb;

	m_wFontOptions = font_om;
	m_wFontOptions_menu = font_om_menu;
	m_wCustomFrame = frame1;
	m_wCustomLabel = customized_cb;
	m_wCustomTable = table2;
	m_wListStyleBox = GTK_COMBO_BOX(style_om);
	m_wListTypeBox = GTK_COMBO_BOX(type_om);
	m_wListType_menu = m_wListStyleNumbered_menu;

	// Start by hiding the Custom frame
	//
	//	gtk_widget_hide(m_wCustomFrame);
	gtk_widget_show(m_wCustomFrame);

	setbisCustomized(false);

	return m_wContents;
}
コード例 #27
0
static GtkContainer *
mbox_get_setup_page( XfceMailwatchMailbox *mailbox )
{
    XfceMailwatchMboxMailbox    *mbox = XFCE_MAILWATCH_MBOX_MAILBOX( mailbox );
    GtkWidget                   *vbox, *hbox;
    GtkWidget                   *label;
    GtkWidget                   *button, *spinner;
    GtkSizeGroup                *sg;

    vbox = gtk_vbox_new( FALSE, BORDER / 2 );
    gtk_widget_show( vbox );
    
    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );

    sg = gtk_size_group_new( GTK_SIZE_GROUP_HORIZONTAL );

    label = gtk_label_new_with_mnemonic( _( "Mbox _Filename:" ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );

    gtk_size_group_add_widget( GTK_SIZE_GROUP( sg ), label );

    button = gtk_file_chooser_button_new( _("Select mbox file"),
                                          GTK_FILE_CHOOSER_ACTION_OPEN );
    g_mutex_lock( mbox->settings_mutex );
    if ( mbox->fn ) {
        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( button ), mbox->fn );
    }
    g_mutex_unlock( mbox->settings_mutex );
    gtk_widget_show( button );
    gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
    g_signal_connect( G_OBJECT( button ), "file-set",
            G_CALLBACK( mbox_file_set_cb ), mbox );

    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), button );

    hbox = gtk_hbox_new( FALSE, BORDER );
    gtk_widget_show( hbox );
    gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );

    label = gtk_label_new_with_mnemonic( _( "_Interval:" ) );
    gtk_widget_show( label );
    gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );

    gtk_size_group_add_widget( GTK_SIZE_GROUP( sg ), label );

    spinner = gtk_spin_button_new_with_range( 1.0, 1440.0, 1.0 );
    gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( spinner ), TRUE );
    gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( spinner ), FALSE );
    gtk_spin_button_set_value( GTK_SPIN_BUTTON( spinner ), mbox->interval / 60 );
    gtk_widget_show( spinner );
    gtk_box_pack_start( GTK_BOX( hbox ), spinner, FALSE, FALSE, 0 );
    g_signal_connect( G_OBJECT( spinner ), "value-changed",
            G_CALLBACK( mbox_interval_changed_cb ), mbox );
    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), spinner );

    label = gtk_label_new( _( "minute(s)." ) );
    gtk_widget_show( label );
    gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );

    return ( GTK_CONTAINER( vbox ) );
}
コード例 #28
0
ファイル: ui_common.c プロジェクト: neuroradiology/amide
void ui_common_study_preferences_widgets(GtkWidget * packing_table,
					 gint table_row,
					 GtkWidget ** proi_width_spin,
					 GnomeCanvasItem ** proi_item,
#ifdef AMIDE_LIBGNOMECANVAS_AA
					 GtkWidget ** proi_transparency_spin,
#else
					 GtkWidget ** pline_style_menu,
					 GtkWidget ** pfill_roi_button,
#endif
					 GtkWidget ** playout_button1,
					 GtkWidget ** playout_button2,
					 GtkWidget ** ppanel_layout_button1,
					 GtkWidget ** ppanel_layout_button2,
					 GtkWidget ** ppanel_layout_button3,
					 GtkWidget ** pmaintain_size_button,
					 GtkWidget ** ptarget_size_spin) {

  GtkWidget * label;
  GtkObject * adjustment;
  GtkWidget * roi_canvas;
  GnomeCanvasPoints * roi_line_points;
  GtkWidget * image;
  GtkWidget * hseparator;
#ifndef AMIDE_LIBGNOMECANVAS_AA
  GdkLineStyle i_line_style;
#endif


  /* widgets to change the roi's size */
  label = gtk_label_new(_("ROI Width (pixels)"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1,
		   0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  adjustment = gtk_adjustment_new(AMITK_PREFERENCES_MIN_ROI_WIDTH,
				  AMITK_PREFERENCES_MIN_ROI_WIDTH,
				  AMITK_PREFERENCES_MAX_ROI_WIDTH,1.0, 1.0, 0.0);
  *proi_width_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1.0, 0);
  gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(*proi_width_spin),FALSE);
  gtk_spin_button_set_snap_to_ticks(GTK_SPIN_BUTTON(*proi_width_spin), TRUE);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(*proi_width_spin), TRUE);
  gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(*proi_width_spin), GTK_UPDATE_ALWAYS);
  gtk_table_attach(GTK_TABLE(packing_table), *proi_width_spin, 1,2, 
		   table_row, table_row+1, GTK_FILL, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(*proi_width_spin);

  /* a little canvas indicator thingie to show the user who the new preferences will look */
#ifdef AMIDE_LIBGNOMECANVAS_AA
  roi_canvas = gnome_canvas_new_aa();
#else
  roi_canvas = gnome_canvas_new();
#endif
  gtk_widget_set_size_request(roi_canvas, 100, 100);
  gnome_canvas_set_scroll_region(GNOME_CANVAS(roi_canvas), 0.0, 0.0, 100.0, 100.0);
  gtk_table_attach(GTK_TABLE(packing_table),  roi_canvas, 2,3,table_row,table_row+2,
		   GTK_FILL, 0,  X_PADDING, Y_PADDING);
  gtk_widget_show(roi_canvas);

  /* the box */
  roi_line_points = gnome_canvas_points_new(5);
  roi_line_points->coords[0] = 25.0; /* x1 */
  roi_line_points->coords[1] = 25.0; /* y1 */
  roi_line_points->coords[2] = 75.0; /* x2 */
  roi_line_points->coords[3] = 25.0; /* y2 */
  roi_line_points->coords[4] = 75.0; /* x3 */
  roi_line_points->coords[5] = 75.0; /* y3 */
  roi_line_points->coords[6] = 25.0; /* x4 */
  roi_line_points->coords[7] = 75.0; /* y4 */
  roi_line_points->coords[8] = 25.0; /* x4 */
  roi_line_points->coords[9] = 25.0; /* y4 */

  
  *proi_item = gnome_canvas_item_new(gnome_canvas_root(GNOME_CANVAS(roi_canvas)), 
#ifdef AMIDE_LIBGNOMECANVAS_AA
				     gnome_canvas_polygon_get_type(),
#else
				     gnome_canvas_line_get_type(),
#endif
				     "points", roi_line_points, 
				     NULL);
  gnome_canvas_points_unref(roi_line_points);
  table_row++;


#ifdef AMIDE_LIBGNOMECANVAS_AA
  /* widget to change the transparency level */
  /* only works for anti-aliased canvases */
  /* widgets to change the roi's size */

  label = gtk_label_new(_("ROI Transparency"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0, 1, table_row, table_row+1,
		   0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  *proi_transparency_spin = gtk_spin_button_new_with_range(0.0,1.0,AMITK_PREFERENCES_DEFAULT_CANVAS_ROI_TRANSPARENCY);
  gtk_spin_button_set_increments(GTK_SPIN_BUTTON(*proi_transparency_spin),0.1,0.1);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(*proi_transparency_spin),FALSE);
  gtk_table_attach(GTK_TABLE(packing_table), *proi_transparency_spin, 1,2, 
		   table_row, table_row+1, GTK_FILL, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(*proi_transparency_spin);
  table_row++;
#else
  /* widgets to change the roi's line style */
  /* Anti-aliased canvas doesn't yet support this */
  /* also need to remove #ifndef for relevant lines in amitk_canvas_object.c and other locations  */
  label = gtk_label_new(_("ROI Line Style:"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 0,1,
  		   table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  *pline_style_menu = gtk_combo_box_new_text();
  for (i_line_style=0; i_line_style<=GDK_LINE_DOUBLE_DASH; i_line_style++) 
     gtk_combo_box_append_text(GTK_COMBO_BOX(*pline_style_menu),
			       line_style_names[i_line_style]);
  gtk_widget_set_size_request (*pline_style_menu, 125, -1);
  gtk_table_attach(GTK_TABLE(packing_table),  *pline_style_menu, 1,2, 
  		   table_row,table_row+1, GTK_FILL, 0,  X_PADDING, Y_PADDING);
  gtk_widget_show(*pline_style_menu);
  table_row++;

  /* do we want to fill in isocontour roi's */
  label = gtk_label_new(_("Draw Isocontours/Freehands Filled:"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  *pfill_roi_button = gtk_check_button_new();
  gtk_table_attach(GTK_TABLE(packing_table), *pfill_roi_button,
		   1,2, table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(*pfill_roi_button);
  table_row++;
#endif

  hseparator = gtk_hseparator_new();
  gtk_table_attach(GTK_TABLE(packing_table), hseparator, 
		   0, 3, table_row, table_row+1,
		   GTK_FILL, 0, X_PADDING, Y_PADDING);
  table_row++;
  gtk_widget_show(hseparator);


  label = gtk_label_new(_("Canvas Layout:"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1,
		   0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  /* the radio buttons */
  *playout_button1 = gtk_radio_button_new(NULL);
  image = gtk_image_new_from_stock("amide_icon_layout_linear",GTK_ICON_SIZE_DIALOG);
  gtk_button_set_image(GTK_BUTTON(*playout_button1), image);
  gtk_table_attach(GTK_TABLE(packing_table), *playout_button1,
  		   1,2, table_row, table_row+1,
  		   0, 0, X_PADDING, Y_PADDING);
  g_object_set_data(G_OBJECT(*playout_button1), "layout", GINT_TO_POINTER(AMITK_LAYOUT_LINEAR));
  gtk_widget_show(*playout_button1);

  *playout_button2 = gtk_radio_button_new(NULL);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(*playout_button2), 
			     gtk_radio_button_get_group(GTK_RADIO_BUTTON(*playout_button1)));
  image = gtk_image_new_from_stock("amide_icon_layout_orthogonal",GTK_ICON_SIZE_DIALOG);
  gtk_button_set_image(GTK_BUTTON(*playout_button2), image);
  gtk_table_attach(GTK_TABLE(packing_table), *playout_button2, 2,3, table_row, table_row+1,
  		   0, 0, X_PADDING, Y_PADDING);
  g_object_set_data(G_OBJECT(*playout_button2), "layout", GINT_TO_POINTER(AMITK_LAYOUT_ORTHOGONAL));
  gtk_widget_show(*playout_button2);

  table_row++;


  label = gtk_label_new(_("Multiple Canvases Layout:"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1,
		   0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  /* the radio buttons */
  *ppanel_layout_button1 = gtk_radio_button_new(NULL);
  image = gtk_image_new_from_stock("amide_icon_panels_mixed", GTK_ICON_SIZE_LARGE_TOOLBAR);
  gtk_button_set_image(GTK_BUTTON(*ppanel_layout_button1), image);
  gtk_table_attach(GTK_TABLE(packing_table), *ppanel_layout_button1,
  		   1,2, table_row, table_row+1,
  		   0, 0, X_PADDING, Y_PADDING);
  g_object_set_data(G_OBJECT(*ppanel_layout_button1), "panel_layout", GINT_TO_POINTER(AMITK_PANEL_LAYOUT_MIXED));
  gtk_widget_show(*ppanel_layout_button1);

  *ppanel_layout_button2 = gtk_radio_button_new(NULL);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(*ppanel_layout_button2), 
			     gtk_radio_button_get_group(GTK_RADIO_BUTTON(*ppanel_layout_button1)));
  image = gtk_image_new_from_stock("amide_icon_panels_linear_x", GTK_ICON_SIZE_LARGE_TOOLBAR);
  gtk_button_set_image(GTK_BUTTON(*ppanel_layout_button2), image);
  gtk_table_attach(GTK_TABLE(packing_table), *ppanel_layout_button2,
  		   2,3, table_row, table_row+1,
  		   0, 0, X_PADDING, Y_PADDING);
  g_object_set_data(G_OBJECT(*ppanel_layout_button2), "panel_layout", GINT_TO_POINTER(AMITK_PANEL_LAYOUT_LINEAR_X));
  gtk_widget_show(*ppanel_layout_button2);

  *ppanel_layout_button3 = gtk_radio_button_new(NULL);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(*ppanel_layout_button3), 
			     gtk_radio_button_get_group(GTK_RADIO_BUTTON(*ppanel_layout_button1)));
  image = gtk_image_new_from_stock("amide_icon_panels_linear_y", GTK_ICON_SIZE_LARGE_TOOLBAR);
  gtk_button_set_image(GTK_BUTTON(*ppanel_layout_button3), image);
  gtk_table_attach(GTK_TABLE(packing_table), *ppanel_layout_button3,
  		   3,4, table_row, table_row+1,
  		   0, 0, X_PADDING, Y_PADDING);
  g_object_set_data(G_OBJECT(*ppanel_layout_button3), "panel_layout", GINT_TO_POINTER(AMITK_PANEL_LAYOUT_LINEAR_Y));
  gtk_widget_show(*ppanel_layout_button3);

  table_row++;


  /* do we want the size of the canvas to not resize */
  label = gtk_label_new(_("Maintain view size constant:"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  *pmaintain_size_button = gtk_check_button_new();
  gtk_table_attach(GTK_TABLE(packing_table), *pmaintain_size_button, 
		   1,2, table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(*pmaintain_size_button);
  table_row++;


  /* widgets to change the amount of empty space in the center of the target */
  label = gtk_label_new(_("Target Empty Area (pixels)"));
  gtk_table_attach(GTK_TABLE(packing_table), label, 
		   0,1, table_row, table_row+1, 0, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(label);

  adjustment = gtk_adjustment_new(AMITK_PREFERENCES_MIN_TARGET_EMPTY_AREA, 
				  AMITK_PREFERENCES_MIN_TARGET_EMPTY_AREA, 
				  AMITK_PREFERENCES_MAX_TARGET_EMPTY_AREA, 1.0, 1.0, 0.0);
  *ptarget_size_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1.0, 0);
  gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(*ptarget_size_spin),FALSE);
  gtk_spin_button_set_snap_to_ticks(GTK_SPIN_BUTTON(*ptarget_size_spin), TRUE);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(*ptarget_size_spin), TRUE);
  gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(*ptarget_size_spin), GTK_UPDATE_ALWAYS);

  gtk_table_attach(GTK_TABLE(packing_table), *ptarget_size_spin, 1,2, 
		   table_row, table_row+1, GTK_FILL, 0, X_PADDING, Y_PADDING);
  gtk_widget_show(*ptarget_size_spin);


  return;
}
コード例 #29
0
ファイル: spinbutton.c プロジェクト: farthought/code
int main(int argc, char **argv)
{
    GtkWidget *window;
    GtkWidget *frame;
    GtkWidget *hbox;
    GtkWidget *main_vbox;
    GtkWidget *vbox;
    GtkWidget *vbox2;
    GtkWidget *spinner2;
    GtkWidget *spinner;
    GtkWidget *button;
    GtkWidget *label;
    GtkWidget *val_label;
    GtkAdjustment *adj;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_window_set_title(GTK_WINDOW(window), "Spin Button");

    main_vbox = gtk_vbox_new(FALSE, 5);
    gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 10);
    gtk_container_add(GTK_CONTAINER(window), main_vbox);

    frame = gtk_frame_new("Not accelerated");
    gtk_box_pack_start(GTK_BOX(main_vbox), frame, TRUE, TRUE, 0);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
    gtk_container_add(GTK_CONTAINER(frame), vbox );

    hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5);

    vbox2 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);

    label = gtk_label_new("Day :");
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, TRUE, 0);

    adj = (GtkAdjustment *)gtk_adjustment_new(1.0, 1.0, 31.0, 1.0, 5.0, 0.0);

    spinner = gtk_spin_button_new(adj, 0, 0);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner), TRUE);
    gtk_box_pack_start(GTK_BOX(vbox2), spinner, FALSE, TRUE, 0);

    vbox2 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
    
    label = gtk_label_new("Month :");
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, TRUE, 0);

    adj = (GtkAdjustment *)gtk_adjustment_new(1.0, 1.0, 12.0, 1.0, 5.0, 0.0);

    spinner = gtk_spin_button_new(adj, 0, 0);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner), TRUE);
    gtk_box_pack_start(GTK_BOX(vbox2), spinner, FALSE, TRUE, 0);

    vbox2 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
    
    label = gtk_label_new("Year :");
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, TRUE, 0);

    adj = (GtkAdjustment *)gtk_adjustment_new(1998.0, 0.0, 2100.0, 1.0, 100.0, 0.0);

    spinner = gtk_spin_button_new(adj, 0, 0);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner), TRUE);
    gtk_widget_set_size_request(spinner, 70, -1);
    gtk_box_pack_start(GTK_BOX(vbox2), spinner, FALSE, TRUE, 0);

    frame = gtk_frame_new("Accelerated");
    gtk_box_pack_start(GTK_BOX(main_vbox), frame, TRUE, TRUE, 0);

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
    gtk_container_add(GTK_CONTAINER(frame), vbox );

    hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5);

    vbox2 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);

    label = gtk_label_new("Value :");
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, TRUE, 0);

    adj = (GtkAdjustment *)gtk_adjustment_new(0.0, -10000.0, 10000.0, 0.5, 100.0, 0.0);

    spinner1 = gtk_spin_button_new(adj, 1.0, 2);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner1), TRUE);
    gtk_widget_set_size_request(spinner1, 100, -1);
    gtk_box_pack_start(GTK_BOX(vbox2), spinner1, FALSE, TRUE, 0);

    vbox2 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 5);
    
    label = gtk_label_new("Digits :");
    gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
    gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, TRUE, 0);

    adj = (GtkAdjustment *)gtk_adjustment_new(2, 1, 5, 1, 1, 0);

    spinner2 = gtk_spin_button_new(adj, 0.0, 0);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinner2), TRUE);
    g_signal_connect(G_OBJECT(adj), "value_changed", G_CALLBACK(change_digits), spinner2);
    gtk_box_pack_start(GTK_BOX(vbox2), spinner2, FALSE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5);
    
    button = gtk_check_button_new_with_label("Snap to 0.5-ticks");
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(toggle_snap), spinner1);
    gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);


    button = gtk_check_button_new_with_label("Numeric only input mode");
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(toggle_numeric), spinner1);
    gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);

    val_label = gtk_label_new("");

    hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5 );
    
    button = gtk_button_new_with_label("Value as Int");
    g_object_set_data(G_OBJECT(button), "user_data", val_label);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(get_value), GINT_TO_POINTER(1));
    gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5);

    button = gtk_button_new_with_label("Value as Float");
    g_object_set_data(G_OBJECT(button), "user_data", val_label);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(get_value), GINT_TO_POINTER(2));
    gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5);

    gtk_box_pack_start(GTK_BOX(vbox), val_label, TRUE, TRUE, 0);
    gtk_label_set_text(GTK_LABEL(val_label), "0");

    hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, TRUE, 0);

    button = gtk_button_new_with_label("Close");
    g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), window);
    gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5);

    gtk_widget_show_all(window);

    gtk_main();

    return 0;
}
コード例 #30
0
ファイル: image.c プロジェクト: TVilaboa/Proyecto-Parser-C
static GtkWidget *
image_get_properties(Image *image)
{
  GtkWidget *vbox;
  GtkWidget *hbox;
  GtkWidget *label;
  GtkWidget *color;
  GtkWidget *checkbox;
  GtkWidget *linestyle;
  GtkWidget *file;
  GtkWidget *border_width;
  GtkAdjustment *adj;

  if (image_properties_dialog == NULL) {
  
    image_properties_dialog = g_new(ImagePropertiesDialog, 1);
  
    vbox = gtk_vbox_new(FALSE, 5);
    image_properties_dialog->vbox = vbox;

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Image file:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    file = dia_file_selector_new();
    image_properties_dialog->file = DIAFILESELECTOR(file);
    gtk_box_pack_start (GTK_BOX (hbox), file, TRUE, TRUE, 0);
    gtk_widget_show (file);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    checkbox = gtk_check_button_new_with_label(_("Keep aspect ratio"));
    image_properties_dialog->keep_aspect = GTK_TOGGLE_BUTTON( checkbox );
    gtk_widget_show(checkbox);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX (hbox), checkbox, TRUE, TRUE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    checkbox = gtk_check_button_new_with_label(_("Show border"));
    image_properties_dialog->draw_border = GTK_TOGGLE_BUTTON( checkbox );
    gtk_widget_show(checkbox);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX (hbox), checkbox, TRUE, TRUE, 0);
    gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Border width:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    adj = (GtkAdjustment *) gtk_adjustment_new(0.1, 0.00, 10.0, 0.01, 0.0, 0.0);
    border_width = gtk_spin_button_new(adj, 1.0, 2);
    gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(border_width), TRUE);
    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(border_width), TRUE);
    image_properties_dialog->border_width = GTK_SPIN_BUTTON(border_width);
    gtk_box_pack_start(GTK_BOX (hbox), border_width, TRUE, TRUE, 0);
    gtk_widget_show (border_width);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);


    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Foreground color:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    color = dia_color_selector_new();
    image_properties_dialog->fg_color = DIACOLORSELECTOR(color);
    gtk_box_pack_start (GTK_BOX (hbox), color, TRUE, TRUE, 0);
    gtk_widget_show (color);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    hbox = gtk_hbox_new(FALSE, 5);
    label = gtk_label_new(_("Line style:"));
    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
    gtk_widget_show (label);
    linestyle = dia_line_style_selector_new();
    image_properties_dialog->line_style = DIALINESTYLESELECTOR(linestyle);
    gtk_box_pack_start (GTK_BOX (hbox), linestyle, TRUE, TRUE, 0);
    gtk_widget_show (linestyle);
    gtk_widget_show(hbox);
    gtk_box_pack_start (GTK_BOX(vbox), hbox, TRUE, TRUE, 0);

    gtk_widget_show (vbox);
  }

  image_properties_dialog->image = image;
    
  gtk_spin_button_set_value(image_properties_dialog->border_width, 
			    image->border_width);
  dia_color_selector_set_color(image_properties_dialog->fg_color, 
			       &image->border_color);
  dia_file_selector_set_file(image_properties_dialog->file, image->file);
  dia_line_style_selector_set_linestyle(image_properties_dialog->line_style,
					image->line_style, 1.0);
  gtk_toggle_button_set_active(image_properties_dialog->draw_border, image->draw_border);
  gtk_toggle_button_set_active(image_properties_dialog->keep_aspect, image->keep_aspect);

  return image_properties_dialog->vbox;
}