]> Pileus Git - ~andy/gtk/blobdiff - tests/testinput.c
visuals: add a visual demo for GtkLevelBar
[~andy/gtk] / tests / testinput.c
index b125c7562c8551e019d363aca34909f22b8bc6de..2a2e4cc8eeda570280ce3ccaeeb1e2e7911b7f7d 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -27,6 +25,7 @@
 #include "config.h"
 #include <stdio.h>
 #include "gtk/gtk.h"
+#include <math.h>
 
 /* Backing surface for drawing area */
 
@@ -48,6 +47,9 @@ update_cursor (GtkWidget *widget,  gdouble x, gdouble y)
   static gint cursor_present = 0;
   gint state = !gdk_device_get_has_cursor (current_device) && cursor_proximity;
 
+  x = floor (x);
+  y = floor (y);
+
   if (surface != NULL)
     {
       cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
@@ -119,26 +121,27 @@ static void
 draw_brush (GtkWidget *widget, GdkInputSource source,
            gdouble x, gdouble y, gdouble pressure)
 {
-  GtkStyle *style;
-  GdkColor color;
+  GdkRGBA color;
   GdkRectangle update_rect;
   cairo_t *cr;
 
-  style = gtk_widget_get_style (widget);
+  color.alpha = 1.0;
 
   switch (source)
     {
     case GDK_SOURCE_MOUSE:
-      color = style->dark[gtk_widget_get_state (widget)];
+      color.red = color.green = 0.0;
+      color.blue = 1.0;
       break;
     case GDK_SOURCE_PEN:
-      color.red = color.green = color.blue = 0;
+      color.red = color.green = color.blue = 0.0;
       break;
     case GDK_SOURCE_ERASER:
-      color.red = color.green = color.blue = 65535;
+      color.red = color.green = color.blue = 1.0;
       break;
     default:
-      color = style->light[gtk_widget_get_state (widget)];
+      color.red = color.blue = 0.0;
+      color.green = 1.0;
     }
 
   update_rect.x = x - 10 * pressure;
@@ -147,7 +150,7 @@ draw_brush (GtkWidget *widget, GdkInputSource source,
   update_rect.height = 20 * pressure;
 
   cr = cairo_create (surface);
-  gdk_cairo_set_source_color (cr, &color);
+  gdk_cairo_set_source_rgba (cr, &color);
   gdk_cairo_rectangle (cr, &update_rect);
   cairo_fill (cr);
   cairo_destroy (cr);
@@ -182,7 +185,8 @@ button_press_event (GtkWidget *widget, GdkEventButton *event)
   current_device = event->device;
   cursor_proximity = TRUE;
 
-  if (event->button == 1 && surface != NULL)
+  if (event->button == GDK_BUTTON_PRIMARY &&
+      surface != NULL)
     {
       gdouble pressure = 0.5;