~ubuntu-branches/ubuntu/breezy/gimp/breezy

« back to all changes in this revision

Viewing changes to plug-ins/gimpressionist/placement.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-10-04 19:04:46 UTC
  • Revision ID: james.westby@ubuntu.com-20051004190446-ukh32kwk56s4sjhu
Tags: upstream-2.2.8
ImportĀ upstreamĀ versionĀ 2.2.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "config.h"
 
2
 
 
3
#include <gtk/gtk.h>
 
4
 
 
5
#include <libgimp/gimp.h>
 
6
#include <libgimp/gimpui.h>
 
7
 
 
8
#include "gimpressionist.h"
 
9
#include "placement.h"
 
10
 
 
11
#include "libgimp/stdplugins-intl.h"
 
12
 
 
13
 
 
14
#define NUM_PLACE_RADIO 2
 
15
 
 
16
static GtkWidget *placement_radio[NUM_PLACE_RADIO];
 
17
static GtkWidget *placement_center = NULL;
 
18
static GtkObject *brush_density_adjust = NULL;
 
19
 
 
20
void
 
21
place_restore (void)
 
22
{
 
23
  gtk_toggle_button_set_active
 
24
    (GTK_TOGGLE_BUTTON (placement_radio[pcvals.place_type]), TRUE);
 
25
  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (placement_center),
 
26
                                pcvals.placement_center);
 
27
  gtk_adjustment_set_value (GTK_ADJUSTMENT (brush_density_adjust),
 
28
                            pcvals.brush_density);
 
29
}
 
30
 
 
31
int
 
32
place_type_input (int in)
 
33
{
 
34
  return CLAMP_UP_TO (in, NUM_PLACE_RADIO);
 
35
}
 
36
 
 
37
void
 
38
place_store (void)
 
39
{
 
40
  pcvals.placement_center = GTK_TOGGLE_BUTTON (placement_center)->active;
 
41
}
 
42
 
 
43
void
 
44
create_placementpage (GtkNotebook *notebook)
 
45
{
 
46
  GtkWidget *vbox;
 
47
  GtkWidget *label, *tmpw, *table, *frame;
 
48
 
 
49
  label = gtk_label_new_with_mnemonic (_("Pl_acement"));
 
50
 
 
51
  vbox = gtk_vbox_new (FALSE, 12);
 
52
  gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
 
53
  gtk_widget_show (vbox);
 
54
 
 
55
  frame = gimp_int_radio_group_new (TRUE, _("Placement"),
 
56
                                    G_CALLBACK (gimp_radio_button_update),
 
57
                                    &pcvals.place_type, 0,
 
58
 
 
59
                                    _("Randomly"),
 
60
                                    PLACEMENT_TYPE_RANDOM,
 
61
                                    &placement_radio[PLACEMENT_TYPE_RANDOM],
 
62
 
 
63
                                    _("Evenly distributed"),
 
64
                                    PLACEMENT_TYPE_EVEN_DIST,
 
65
                                    &placement_radio[PLACEMENT_TYPE_EVEN_DIST],
 
66
 
 
67
                                    NULL);
 
68
 
 
69
  gimp_help_set_help_data
 
70
    (placement_radio[PLACEMENT_TYPE_RANDOM],
 
71
     _("Place strokes randomly around the image"),
 
72
     NULL);
 
73
  gimp_help_set_help_data
 
74
    (placement_radio[PLACEMENT_TYPE_EVEN_DIST],
 
75
     _("The strokes are evenly distributed across the image"),
 
76
     NULL);
 
77
 
 
78
  gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
 
79
  gtk_widget_show (frame);
 
80
 
 
81
  gtk_toggle_button_set_active
 
82
    (GTK_TOGGLE_BUTTON (placement_radio[pcvals.place_type]), TRUE);
 
83
 
 
84
  table = gtk_table_new (1, 3, FALSE);
 
85
  gtk_table_set_col_spacings (GTK_TABLE (table), 6);
 
86
  gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 
87
  gtk_widget_show (table);
 
88
 
 
89
  brush_density_adjust =
 
90
    gimp_scale_entry_new (GTK_TABLE (table), 0, 0,
 
91
                          _("Stroke _density:"),
 
92
                          100, -1, pcvals.brush_density,
 
93
                          1.0, 50.0, 1.0, 5.0, 0,
 
94
                          TRUE, 0, 0,
 
95
                          _("The relative density of the brush strokes"),
 
96
                          NULL);
 
97
  g_signal_connect (brush_density_adjust, "value_changed",
 
98
                    G_CALLBACK (gimp_double_adjustment_update),
 
99
                    &pcvals.brush_density);
 
100
 
 
101
  placement_center = gtk_check_button_new_with_mnemonic ( _("Centerize"));
 
102
  tmpw = placement_center;
 
103
 
 
104
  gtk_box_pack_start (GTK_BOX (vbox), tmpw, FALSE, FALSE, 0);
 
105
  gtk_widget_show (tmpw);
 
106
  gimp_help_set_help_data
 
107
    (tmpw, _("Focus the brush strokes around the center of the image"), NULL);
 
108
  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tmpw),
 
109
                                pcvals.placement_center);
 
110
 
 
111
  gtk_notebook_append_page_menu (notebook, vbox, label, NULL);
 
112
}