~ubuntu-branches/ubuntu/oneiric/avant-window-navigator/oneiric

« back to all changes in this revision

Viewing changes to src/awn-throbber.c

  • Committer: Bazaar Package Importer
  • Author(s): Julien Lavergne
  • Date: 2010-02-18 00:22:52 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20100218002252-fe6vniq3o8ct3cdz
Tags: 0.3.9.1~bzr603-0ubuntu1
* New upstream snapshot. 
 - Switch to main trunk branch.
* debian/control:
 - Add Conflicts on awn-manager for awn-settings (LP: #507822)
 - Remove build-depends on python-elementtree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
  G_OBJECT_CLASS (awn_throbber_parent_class)->dispose (object);
55
55
}
56
56
 
 
57
static void
 
58
paint_sad_face (cairo_t *cr)
 
59
{
 
60
  /* sad face */
 
61
  const gfloat EYE_SIZE = 0.04;
 
62
  gfloat EYE_POS_X, EYE_POS_Y;
 
63
 
 
64
  awn_cairo_rounded_rect(cr, 0.05, 0.05, 0.9, 0.9, 0.05, ROUND_ALL);
 
65
  cairo_stroke(cr);
 
66
 
 
67
  #define MINI_RECT(cr, x, y) \
 
68
    cairo_rectangle (cr, x, y, EYE_SIZE, EYE_SIZE); \
 
69
    cairo_fill (cr);
 
70
 
 
71
  EYE_POS_X = 0.25;
 
72
  EYE_POS_Y = 0.30;
 
73
 
 
74
  /* left eye */
 
75
  MINI_RECT(cr, EYE_POS_X, EYE_POS_Y);
 
76
  MINI_RECT(cr, EYE_POS_X, EYE_POS_Y + 2*EYE_SIZE);
 
77
  MINI_RECT(cr, EYE_POS_X + EYE_SIZE, EYE_POS_Y + EYE_SIZE);
 
78
  MINI_RECT(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y);
 
79
  MINI_RECT(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y + 2*EYE_SIZE);
 
80
 
 
81
  /* right eye */
 
82
  EYE_POS_X = 0.65;
 
83
 
 
84
  MINI_RECT(cr, EYE_POS_X, EYE_POS_Y);
 
85
  MINI_RECT(cr, EYE_POS_X, EYE_POS_Y + 2*EYE_SIZE);
 
86
  MINI_RECT(cr, EYE_POS_X + EYE_SIZE, EYE_POS_Y + EYE_SIZE);
 
87
  MINI_RECT(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y);
 
88
  MINI_RECT(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y + 2*EYE_SIZE);
 
89
 
 
90
  #undef MINI_RECT
 
91
 
 
92
  /* nose */
 
93
  cairo_curve_to(cr, 0.45, 0.48,
 
94
                     0.5, 0.53,
 
95
                     0.55, 0.48);
 
96
  cairo_stroke(cr);
 
97
 
 
98
  /* mouth */
 
99
  cairo_curve_to(cr, 0.25, 0.73,
 
100
                     0.5, 0.62,
 
101
                     0.77, 0.77);
 
102
  cairo_stroke(cr);
 
103
 
 
104
}
 
105
 
57
106
static gboolean
58
107
awn_throbber_expose_event (GtkWidget *widget, GdkEventExpose *event)
59
108
{
120
169
    }
121
170
    case AWN_THROBBER_TYPE_SAD_FACE:
122
171
    {
123
 
      const gfloat EYE_SIZE = 0.04;
124
 
 
125
 
      GdkColor c = gtk_widget_get_style (widget)->fg[GTK_STATE_NORMAL];
126
 
      double r = c.red / 65535.0;
127
 
      double g = c.green / 65535.0;
128
 
      double b = c.blue / 65535.0;
129
 
 
130
 
      gfloat EYE_POS_X, EYE_POS_Y;
131
 
      /* sad face */
132
 
      cairo_set_source_rgb(cr, r, g, b);
133
 
      cairo_set_line_width(cr, 0.03);
134
 
 
135
 
      awn_cairo_rounded_rect(cr, 0.05, 0.05, 0.9, 0.9, 0.05, ROUND_ALL);
136
 
      cairo_stroke(cr);
137
 
 
138
 
      EYE_POS_X = 0.25;
139
 
      EYE_POS_Y = 0.30;
140
 
      /* left eye */
141
 
      cairo_rectangle(cr, EYE_POS_X, EYE_POS_Y, EYE_SIZE, EYE_SIZE);
142
 
      cairo_fill(cr);
143
 
      cairo_rectangle(cr, EYE_POS_X, EYE_POS_Y + 2*EYE_SIZE, EYE_SIZE, EYE_SIZE);
144
 
      cairo_fill(cr);
145
 
      cairo_rectangle(cr, EYE_POS_X + EYE_SIZE, EYE_POS_Y + EYE_SIZE, EYE_SIZE, EYE_SIZE);
146
 
      cairo_fill(cr);
147
 
      cairo_rectangle(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y, EYE_SIZE, EYE_SIZE);
148
 
      cairo_fill(cr);
149
 
      cairo_rectangle(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y + 2*EYE_SIZE, EYE_SIZE, EYE_SIZE);
150
 
      cairo_fill(cr);
151
 
 
152
 
      EYE_POS_X = 0.65;
153
 
      /* right eye */
154
 
      cairo_rectangle(cr, EYE_POS_X, EYE_POS_Y, EYE_SIZE, EYE_SIZE);
155
 
      cairo_fill(cr);
156
 
      cairo_rectangle(cr, EYE_POS_X, EYE_POS_Y + 2*EYE_SIZE, EYE_SIZE, EYE_SIZE);
157
 
      cairo_fill(cr);
158
 
      cairo_rectangle(cr, EYE_POS_X + EYE_SIZE, EYE_POS_Y + EYE_SIZE, EYE_SIZE, EYE_SIZE);
159
 
      cairo_fill(cr);
160
 
      cairo_rectangle(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y, EYE_SIZE, EYE_SIZE);;
161
 
      cairo_fill(cr);
162
 
      cairo_rectangle(cr, EYE_POS_X + 2*EYE_SIZE, EYE_POS_Y + 2*EYE_SIZE, EYE_SIZE, EYE_SIZE);
163
 
      cairo_fill(cr);
164
 
 
165
 
      /* nose */
166
 
      cairo_curve_to(cr, 0.45, 0.48,
167
 
                         0.5, 0.53,
168
 
                         0.55, 0.48);
169
 
      cairo_stroke(cr);
170
 
 
171
 
      /* mouth */
172
 
      cairo_curve_to(cr, 0.25, 0.73,
173
 
                         0.5, 0.62,
174
 
                         0.77, 0.77);
175
 
      cairo_stroke(cr);
 
172
      GdkColor c;
 
173
      double r, g, b;
 
174
 
 
175
      c = gtk_widget_get_style (widget)->fg[GTK_STATE_NORMAL];
 
176
      r = c.red / 65535.0;
 
177
      g = c.green / 65535.0;
 
178
      b = c.blue / 65535.0;
 
179
 
 
180
      cairo_set_source_rgb (cr, r, g, b);
 
181
      cairo_set_line_width (cr, 0.03);
 
182
      paint_sad_face (cr);
 
183
 
176
184
      break;
177
185
    }
178
186
    case AWN_THROBBER_TYPE_ARROW_1: