mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-12-23 12:35:32 +00:00
2004-08-26 Manuel V. Santos <mvsl@telefonica.net>
* gdk/Device.custom : glue to expose object fields. * gdk/DeviceAxis.custom : expand the ToString to incl use: * gdk/EventButton.custom : fix for Axes prop. * gdk/EventMotion.custom : fix for Axes prop. * gdk/Gdk.metadata : hide some accessors on Device. * gdk/Makefile.am : add new custom. * gdk/glue/Makefile.am : add new .c * gdk/glue/makefile.win32 : add new .o * gdk/glue/device.c : ditto. * gtk/InputDialog.custom : glue to expose button fields. * gtk/Makefile.am : add new custom. * gtk/glue/Makefile.am : add new .c * gtk/glue/makefile.win32 : add new .o * gtk/glue/inputdialog.c : ditto. * sample/ScribbleXInput.cs : new sample using extension events. svn path=/trunk/gtk-sharp/; revision=32899
This commit is contained in:
parent
efb53c5ec7
commit
e5dde2ff7e
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
2004-08-26 Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
|
||||||
|
* gdk/Device.custom : glue to expose object fields.
|
||||||
|
* gdk/DeviceAxis.custom : expand the ToString to incl use:
|
||||||
|
* gdk/EventButton.custom : fix for Axes prop.
|
||||||
|
* gdk/EventMotion.custom : fix for Axes prop.
|
||||||
|
* gdk/Gdk.metadata : hide some accessors on Device.
|
||||||
|
* gdk/Makefile.am : add new custom.
|
||||||
|
* gdk/glue/Makefile.am : add new .c
|
||||||
|
* gdk/glue/makefile.win32 : add new .o
|
||||||
|
* gdk/glue/device.c : ditto.
|
||||||
|
* gtk/InputDialog.custom : glue to expose button fields.
|
||||||
|
* gtk/Makefile.am : add new custom.
|
||||||
|
* gtk/glue/Makefile.am : add new .c
|
||||||
|
* gtk/glue/makefile.win32 : add new .o
|
||||||
|
* gtk/glue/inputdialog.c : ditto.
|
||||||
|
* sample/ScribbleXInput.cs : new sample using extension events.
|
||||||
|
|
||||||
2004-08-25 Mike Kestner <mkestner@ximian.com>
|
2004-08-25 Mike Kestner <mkestner@ximian.com>
|
||||||
|
|
||||||
* generator/Signal.cs : use typeof instead of Type.GetType to
|
* generator/Signal.cs : use typeof instead of Type.GetType to
|
||||||
|
|
|
@ -99,21 +99,6 @@
|
||||||
<remarks>None.</remarks>
|
<remarks>None.</remarks>
|
||||||
</Docs>
|
</Docs>
|
||||||
</Member>
|
</Member>
|
||||||
<Member MemberName="Source">
|
|
||||||
<MemberSignature Language="C#" Value="public Gdk.InputSource Source { set; };" />
|
|
||||||
<MemberType>Property</MemberType>
|
|
||||||
<ReturnValue>
|
|
||||||
<ReturnType>Gdk.InputSource</ReturnType>
|
|
||||||
</ReturnValue>
|
|
||||||
<Parameters>
|
|
||||||
</Parameters>
|
|
||||||
<Docs>
|
|
||||||
<summary>Sets the source type for an input device.</summary>
|
|
||||||
<param name="value">Sets the source type for an input device.</param>
|
|
||||||
<returns>None.</returns>
|
|
||||||
<remarks>None.</remarks>
|
|
||||||
</Docs>
|
|
||||||
</Member>
|
|
||||||
<Member MemberName="SetKey">
|
<Member MemberName="SetKey">
|
||||||
<MemberSignature Language="C#" Value="public void SetKey (uint index_, uint keyval, Gdk.ModifierType modifiers);" />
|
<MemberSignature Language="C#" Value="public void SetKey (uint index_, uint keyval, Gdk.ModifierType modifiers);" />
|
||||||
<MemberType>Method</MemberType>
|
<MemberType>Method</MemberType>
|
||||||
|
@ -150,45 +135,6 @@
|
||||||
<remarks>To be added</remarks>
|
<remarks>To be added</remarks>
|
||||||
</Docs>
|
</Docs>
|
||||||
</Member>
|
</Member>
|
||||||
<Member MemberName="GetState">
|
|
||||||
<MemberSignature Language="C#" Value="public void GetState (Gdk.Window window, out double axes, out Gdk.ModifierType mask);" />
|
|
||||||
<MemberType>Method</MemberType>
|
|
||||||
<ReturnValue>
|
|
||||||
<ReturnType>System.Void</ReturnType>
|
|
||||||
</ReturnValue>
|
|
||||||
<Parameters>
|
|
||||||
<Parameter Name="window" Type="Gdk.Window" />
|
|
||||||
<Parameter Name="axes" Type="System.Double&" RefType="out" />
|
|
||||||
<Parameter Name="mask" Type="Gdk.ModifierType&" RefType="out" />
|
|
||||||
</Parameters>
|
|
||||||
<Docs>
|
|
||||||
<summary>To be added</summary>
|
|
||||||
<param name="window">a <see cref="T:Gdk.Window" /></param>
|
|
||||||
<param name="axes">a <see cref="T:System.Double&" /></param>
|
|
||||||
<param name="mask">a <see cref="T:Gdk.ModifierType&" /></param>
|
|
||||||
<remarks>To be added</remarks>
|
|
||||||
</Docs>
|
|
||||||
</Member>
|
|
||||||
<Member MemberName="GetAxis">
|
|
||||||
<MemberSignature Language="C#" Value="public bool GetAxis (out double axes, Gdk.AxisUse use, out double value);" />
|
|
||||||
<MemberType>Method</MemberType>
|
|
||||||
<ReturnValue>
|
|
||||||
<ReturnType>System.Boolean</ReturnType>
|
|
||||||
</ReturnValue>
|
|
||||||
<Parameters>
|
|
||||||
<Parameter Name="axes" Type="System.Double&" RefType="out" />
|
|
||||||
<Parameter Name="use" Type="Gdk.AxisUse" />
|
|
||||||
<Parameter Name="value" Type="System.Double&" RefType="out" />
|
|
||||||
</Parameters>
|
|
||||||
<Docs>
|
|
||||||
<summary>Interprets an array of double as axis values for a given device, and locates the value in the array for a given axis use.</summary>
|
|
||||||
<param name="axes">An array of axes.</param>
|
|
||||||
<param name="use">The <see cref="T:Gdk.AxisUse" /> to look for.</param>
|
|
||||||
<param name="value">Found value.</param>
|
|
||||||
<returns>True if the given axis use was found, otherwise false.</returns>
|
|
||||||
<remarks>To be added</remarks>
|
|
||||||
</Docs>
|
|
||||||
</Member>
|
|
||||||
<Member MemberName="GetHistory">
|
<Member MemberName="GetHistory">
|
||||||
<MemberSignature Language="C#" Value="public bool GetHistory (Gdk.Window window, uint start, uint stop, Gdk.TimeCoord events, out int n_events);" />
|
<MemberSignature Language="C#" Value="public bool GetHistory (Gdk.Window window, uint start, uint stop, Gdk.TimeCoord events, out int n_events);" />
|
||||||
<MemberType>Method</MemberType>
|
<MemberType>Method</MemberType>
|
||||||
|
@ -251,5 +197,154 @@
|
||||||
<remarks>None.</remarks>
|
<remarks>None.</remarks>
|
||||||
</Docs>
|
</Docs>
|
||||||
</Member>
|
</Member>
|
||||||
|
<Member MemberName="Name">
|
||||||
|
<MemberSignature Language="C#" Value="public string Name { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.String</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:System.String" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="Source">
|
||||||
|
<MemberSignature Language="C#" Value="public Gdk.InputSource Source { set; get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gdk.InputSource</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:Gdk.InputSource" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="Mode">
|
||||||
|
<MemberSignature Language="C#" Value="public Gdk.InputMode Mode { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gdk.InputMode</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:Gdk.InputMode" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="HasCursor">
|
||||||
|
<MemberSignature Language="C#" Value="public bool HasCursor { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.Boolean</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:System.Boolean" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="NumAxes">
|
||||||
|
<MemberSignature Language="C#" Value="public int NumAxes { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.Int32</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:System.Int32" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="NumKeys">
|
||||||
|
<MemberSignature Language="C#" Value="public int NumKeys { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.Int32</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:System.Int32" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="GetAxis">
|
||||||
|
<MemberSignature Language="C#" Value="public bool GetAxis (double [] axes, Gdk.AxisUse use, out double value);" />
|
||||||
|
<MemberType>Method</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.Boolean</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters>
|
||||||
|
<Parameter Name="axes" Type="System.Double[]" />
|
||||||
|
<Parameter Name="use" Type="Gdk.AxisUse" />
|
||||||
|
<Parameter Name="value" Type="System.Double&" RefType="out" />
|
||||||
|
</Parameters>
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<param name="axes">a <see cref="T:System.Double" /></param>
|
||||||
|
<param name="use">a <see cref="T:System.Int32" /></param>
|
||||||
|
<param name="value">a <see cref="T:System.Double" /></param>
|
||||||
|
<returns>a <see cref="T:System.Boolean" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="GetState">
|
||||||
|
<MemberSignature Language="C#" Value="public void GetState (Gdk.Window window, out double [] axes, out Gdk.ModifierType mask);" />
|
||||||
|
<MemberType>Method</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>System.Void</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters>
|
||||||
|
<Parameter Name="window" Type="Gdk.Window" />
|
||||||
|
<Parameter Name="axes" Type="System.Double[]&" RefType="out" />
|
||||||
|
<Parameter Name="mask" Type="Gdk.ModifierType&" RefType="out" />
|
||||||
|
</Parameters>
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<param name="window">a <see cref="T:Gdk.Window" /></param>
|
||||||
|
<param name="axes">a <see cref="T:System.Double[]" /></param>
|
||||||
|
<param name="mask">a <see cref="T:Gdk.ModifierType" /></param>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="GetDeviceAxis">
|
||||||
|
<MemberSignature Language="C#" Value="public Gdk.DeviceAxis GetDeviceAxis (uint axis);" />
|
||||||
|
<MemberType>Method</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gdk.DeviceAxis</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters>
|
||||||
|
<Parameter Name="axis" Type="System.UInt32" />
|
||||||
|
</Parameters>
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<param name="axis">a <see cref="T:System.UInt32" /></param>
|
||||||
|
<returns>a <see cref="T:Gdk.DeviceAxis" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="GetDeviceKey">
|
||||||
|
<MemberSignature Language="C#" Value="public Gdk.DeviceKey GetDeviceKey (uint axis);" />
|
||||||
|
<MemberType>Method</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gdk.DeviceKey</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters>
|
||||||
|
<Parameter Name="axis" Type="System.UInt32" />
|
||||||
|
</Parameters>
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<param name="axis">a <see cref="T:System.UInt32" /></param>
|
||||||
|
<returns>a <see cref="T:Gdk.DeviceKey" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
</Members>
|
</Members>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
|
@ -171,5 +171,31 @@
|
||||||
<remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
|
<remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
|
||||||
</Docs>
|
</Docs>
|
||||||
</Member>
|
</Member>
|
||||||
|
<Member MemberName="SaveButton">
|
||||||
|
<MemberSignature Language="C#" Value="public Gtk.Button SaveButton { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gtk.Button</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:Gtk.Button" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
|
<Member MemberName="CloseButton">
|
||||||
|
<MemberSignature Language="C#" Value="public Gtk.Button CloseButton { get; };" />
|
||||||
|
<MemberType>Property</MemberType>
|
||||||
|
<ReturnValue>
|
||||||
|
<ReturnType>Gtk.Button</ReturnType>
|
||||||
|
</ReturnValue>
|
||||||
|
<Parameters />
|
||||||
|
<Docs>
|
||||||
|
<summary>To be added</summary>
|
||||||
|
<returns>a <see cref="T:Gtk.Button" /></returns>
|
||||||
|
<remarks>To be added</remarks>
|
||||||
|
</Docs>
|
||||||
|
</Member>
|
||||||
</Members>
|
</Members>
|
||||||
</Type>
|
</Type>
|
106
gdk/Device.custom
Normal file
106
gdk/Device.custom
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
// Display.custom - customizations to Gdk.Display
|
||||||
|
//
|
||||||
|
// Authors: Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
//
|
||||||
|
// Copyright (c) 2004 Manuel V. Santos
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of version 2 of the Lesser GNU General
|
||||||
|
// Public License as published by the Free Software Foundation.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this program; if not, write to the
|
||||||
|
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
// Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern IntPtr gtksharp_gdk_device_get_name (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern InputSource gtksharp_gdk_device_get_source (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern InputMode gtksharp_gdk_device_get_mode (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern bool gtksharp_gdk_device_has_cursor (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern int gtksharp_gdk_device_get_num_axes (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern int gtksharp_gdk_device_get_num_keys (IntPtr device);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern DeviceAxis gtksharp_gdk_device_get_device_axis (IntPtr device, uint axis);
|
||||||
|
|
||||||
|
[DllImport("gdksharpglue")]
|
||||||
|
static extern DeviceKey gtksharp_gdk_device_get_device_key (IntPtr device, uint axis);
|
||||||
|
|
||||||
|
[DllImport("libgdk-win32-2.0-0.dll")]
|
||||||
|
static extern void gdk_device_set_source(IntPtr device, int source);
|
||||||
|
|
||||||
|
[DllImport("libgdk-win32-2.0-0.dll")]
|
||||||
|
static extern void gdk_device_get_state(IntPtr device, IntPtr window, double [] axes, out int maskAsInt);
|
||||||
|
|
||||||
|
|
||||||
|
public string Name {
|
||||||
|
get {
|
||||||
|
IntPtr rawName = gtksharp_gdk_device_get_name (Handle);
|
||||||
|
return Marshal.PtrToStringAnsi(rawName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gdk.InputSource Source {
|
||||||
|
get {
|
||||||
|
return gtksharp_gdk_device_get_source (Handle);
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
gdk_device_set_source(Handle, (int) value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gdk.InputMode Mode {
|
||||||
|
get {
|
||||||
|
return gtksharp_gdk_device_get_mode (Handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasCursor {
|
||||||
|
get {
|
||||||
|
return gtksharp_gdk_device_has_cursor (Handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int NumAxes {
|
||||||
|
get {
|
||||||
|
return gtksharp_gdk_device_get_num_axes (Handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int NumKeys {
|
||||||
|
get {
|
||||||
|
return gtksharp_gdk_device_get_num_keys (Handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetState(Gdk.Window window, out double [] axes, out Gdk.ModifierType mask) {
|
||||||
|
int maskAsInt;
|
||||||
|
axes = new double [this.NumAxes];
|
||||||
|
gdk_device_get_state(Handle, window.Handle, axes, out maskAsInt);
|
||||||
|
mask = (Gdk.ModifierType) maskAsInt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gdk.DeviceAxis GetDeviceAxis (uint axis) {
|
||||||
|
return gtksharp_gdk_device_get_device_axis (Handle, axis);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gdk.DeviceKey GetDeviceKey (uint axis) {
|
||||||
|
return gtksharp_gdk_device_get_device_key (Handle, axis);
|
||||||
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
public override string ToString ()
|
public override string ToString ()
|
||||||
{
|
{
|
||||||
return "Gdk.DeviceAxis, max:" + this.Max + ",min:" + this.Min;
|
return "Gdk.DeviceAxis, max:" + this.Max + ",min:" + this.Min + ",use:" + this.Use;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -104,9 +104,12 @@ namespace Gdk {
|
||||||
|
|
||||||
public double[] Axes {
|
public double[] Axes {
|
||||||
get {
|
get {
|
||||||
double[] result = new double [2];
|
double[] result = null;
|
||||||
IntPtr axes = gtksharp_gdk_event_button_get_axes (Handle);
|
IntPtr axes = gtksharp_gdk_event_button_get_axes (Handle);
|
||||||
Marshal.Copy (result, 0, axes, 2);
|
if (axes != IntPtr.Zero) {
|
||||||
|
result = new double[Device.NumAxes];
|
||||||
|
Marshal.Copy (axes, result, 0, result.Length);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,9 +105,12 @@ namespace Gdk {
|
||||||
|
|
||||||
public double[] Axes {
|
public double[] Axes {
|
||||||
get {
|
get {
|
||||||
double[] result = new double [2];
|
double[] result = null;
|
||||||
IntPtr axes = gtksharp_gdk_event_motion_get_axes (Handle);
|
IntPtr axes = gtksharp_gdk_event_motion_get_axes (Handle);
|
||||||
Marshal.Copy (result, 0, axes, 2);
|
if (axes != IntPtr.Zero) {
|
||||||
|
result = new double [Device.NumAxes];
|
||||||
|
Marshal.Copy (axes, result, 0, result.Length);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='AllocColors']/*/*[@name='success']" name="array">1</attr>
|
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='AllocColors']/*/*[@name='success']" name="array">1</attr>
|
||||||
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='QueryColor']/*/*[@type='GdkColor*']" name="pass_as">ref</attr>
|
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='QueryColor']/*/*[@type='GdkColor*']" name="pass_as">ref</attr>
|
||||||
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='FreeColors']/*/*[@type='GdkColor*']" name="array">1</attr>
|
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='FreeColors']/*/*[@type='GdkColor*']" name="array">1</attr>
|
||||||
|
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='GetAxis']/*/*[@name='axes']" name="array">1</attr>
|
||||||
|
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='GetState']" name="hidden">1</attr>
|
||||||
|
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='SetSource']" name="hidden">1</attr>
|
||||||
<attr path="/api/namespace/object[@cname='GdkDisplay']/method[@name='ListDevices']" name="hidden">1</attr>
|
<attr path="/api/namespace/object[@cname='GdkDisplay']/method[@name='ListDevices']" name="hidden">1</attr>
|
||||||
<attr path="/api/namespace/object[@cname='GdkDisplayManager']/method[@name='ListDisplays']" name="hidden">1</attr>
|
<attr path="/api/namespace/object[@cname='GdkDisplayManager']/method[@name='ListDisplays']" name="hidden">1</attr>
|
||||||
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawGrayImage']/*/*[@name='buf']" name="array">1</attr>
|
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawGrayImage']/*/*[@name='buf']" name="array">1</attr>
|
||||||
|
|
|
@ -42,6 +42,7 @@ build_sources = $(addprefix $(srcdir)/, $(sources)) AssemblyInfo.cs
|
||||||
customs = \
|
customs = \
|
||||||
Atom.custom \
|
Atom.custom \
|
||||||
Color.custom \
|
Color.custom \
|
||||||
|
Device.custom \
|
||||||
DeviceAxis.custom \
|
DeviceAxis.custom \
|
||||||
Display.custom \
|
Display.custom \
|
||||||
DisplayManager.custom \
|
DisplayManager.custom \
|
||||||
|
|
|
@ -2,6 +2,7 @@ lib_LTLIBRARIES = libgdksharpglue.la
|
||||||
|
|
||||||
libgdksharpglue_la_SOURCES = \
|
libgdksharpglue_la_SOURCES = \
|
||||||
dragcontext.c \
|
dragcontext.c \
|
||||||
|
device.c \
|
||||||
event.c \
|
event.c \
|
||||||
selection.c \
|
selection.c \
|
||||||
vmglueheaders.h \
|
vmglueheaders.h \
|
||||||
|
|
84
gdk/glue/device.c
Normal file
84
gdk/glue/device.c
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
/* device.c : Glue to access fields in GdkDevice.
|
||||||
|
*
|
||||||
|
* Author: Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
*
|
||||||
|
* Copyright (c) Manuel V. Santos
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of version 2 of the Lesser GNU General
|
||||||
|
* Public License as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <gdk/gdk.h>
|
||||||
|
|
||||||
|
/* Forward declarations */
|
||||||
|
gchar* gtksharp_gdk_device_get_name (GdkDevice *device);
|
||||||
|
GdkInputSource gtksharp_gdk_device_get_source (GdkDevice *device);
|
||||||
|
GdkInputMode gtksharp_gdk_device_get_mode (GdkDevice *device);
|
||||||
|
gboolean gtksharp_gdk_device_has_cursor (GdkDevice *device);
|
||||||
|
gint gtksharp_gdk_device_get_num_axes (GdkDevice *device);
|
||||||
|
gint gtksharp_gdk_device_get_num_keys (GdkDevice *device);
|
||||||
|
GdkDeviceAxis* gtksharp_gdk_device_get_axes (GdkDevice *device);
|
||||||
|
GdkDeviceKey* gtksharp_gdk_device_get_keys (GdkDevice *device);
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
gchar*
|
||||||
|
gtksharp_gdk_device_get_name (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkInputSource
|
||||||
|
gtksharp_gdk_device_get_source (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->source;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkInputMode
|
||||||
|
gtksharp_gdk_device_get_mode (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gtksharp_gdk_device_has_cursor (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->has_cursor;
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gtksharp_gdk_device_get_num_axes (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->num_axes;
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gtksharp_gdk_device_get_num_keys (GdkDevice *device)
|
||||||
|
{
|
||||||
|
return device->num_keys;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkDeviceAxis
|
||||||
|
gtksharp_gdk_device_get_device_axis (GdkDevice *device, guint i)
|
||||||
|
{
|
||||||
|
return device->axes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkDeviceKey
|
||||||
|
gtksharp_gdk_device_get_device_key (GdkDevice *device, guint i)
|
||||||
|
{
|
||||||
|
return device->keys[i];
|
||||||
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ DLLWRAP=dllwrap -mno-cygwin -mms-bitfields --target i386-mingw32 --export-all-sy
|
||||||
|
|
||||||
GLUE_OBJS = \
|
GLUE_OBJS = \
|
||||||
dragcontext.o \
|
dragcontext.o \
|
||||||
|
device.o \
|
||||||
event.o \
|
event.o \
|
||||||
selection.o \
|
selection.o \
|
||||||
win32dll.o
|
win32dll.o
|
||||||
|
|
42
gtk/InputDialog.custom
Normal file
42
gtk/InputDialog.custom
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Gtk.InputDialog.custom - Gtk InputDialog class customizations
|
||||||
|
//
|
||||||
|
// Author: Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
//
|
||||||
|
// Copyright (C) 2004 Manuel V. Santos.
|
||||||
|
//
|
||||||
|
// This code is inserted after the automatically generated code.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of version 2 of the Lesser GNU General
|
||||||
|
// Public License as published by the Free Software Foundation.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
// Lesser General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
|
// License along with this program; if not, write to the
|
||||||
|
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
// Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
[DllImport("gtksharpglue")]
|
||||||
|
static extern IntPtr gtksharp_input_dialog_get_save_button (IntPtr i);
|
||||||
|
|
||||||
|
public Gtk.Button SaveButton {
|
||||||
|
get {
|
||||||
|
IntPtr rawButton = gtksharp_input_dialog_get_save_button (Handle);
|
||||||
|
return new Button (rawButton);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("gtksharpglue")]
|
||||||
|
static extern IntPtr gtksharp_input_dialog_get_close_button (IntPtr i);
|
||||||
|
|
||||||
|
public Gtk.Button CloseButton {
|
||||||
|
get {
|
||||||
|
IntPtr rawButton = gtksharp_input_dialog_get_close_button (Handle);
|
||||||
|
return new Button (rawButton);
|
||||||
|
}
|
||||||
|
}
|
|
@ -49,6 +49,7 @@ customs = \
|
||||||
IconFactory.custom \
|
IconFactory.custom \
|
||||||
IconSet.custom \
|
IconSet.custom \
|
||||||
ImageMenuItem.custom \
|
ImageMenuItem.custom \
|
||||||
|
InputDialog.custom \
|
||||||
ItemFactory.custom \
|
ItemFactory.custom \
|
||||||
Label.custom \
|
Label.custom \
|
||||||
Layout.custom \
|
Layout.custom \
|
||||||
|
|
|
@ -10,6 +10,7 @@ libgtksharpglue_la_SOURCES = \
|
||||||
container.c \
|
container.c \
|
||||||
dialog.c \
|
dialog.c \
|
||||||
fileselection.c \
|
fileselection.c \
|
||||||
|
inputdialog.c \
|
||||||
layout.c \
|
layout.c \
|
||||||
nodestore.c \
|
nodestore.c \
|
||||||
object.c \
|
object.c \
|
||||||
|
|
40
gtk/glue/inputdialog.c
Normal file
40
gtk/glue/inputdialog.c
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/* inputdialog.c : Glue for accessing fields in the GtkInputDialog widget.
|
||||||
|
*
|
||||||
|
* Author: Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004 Manuel V. Santos
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of version 2 of the Lesser GNU General
|
||||||
|
* Public License as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this program; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtk/gtkinputdialog.h>
|
||||||
|
|
||||||
|
/* Forward declarations */
|
||||||
|
GtkWidget *gtksharp_input_dialog_get_save_button (GtkInputDialog *dialog);
|
||||||
|
|
||||||
|
GtkWidget *gtksharp_input_dialog_get_close_button (GtkInputDialog *dialog);
|
||||||
|
/* */
|
||||||
|
|
||||||
|
GtkWidget*
|
||||||
|
gtksharp_input_dialog_get_save_button (GtkInputDialog *dialog)
|
||||||
|
{
|
||||||
|
return dialog->save_button;
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget*
|
||||||
|
gtksharp_input_dialog_get_close_button (GtkInputDialog *dialog)
|
||||||
|
{
|
||||||
|
return dialog->close_button;
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ GLUE_OBJS = \
|
||||||
container.o \
|
container.o \
|
||||||
dialog.o \
|
dialog.o \
|
||||||
fileselection.o \
|
fileselection.o \
|
||||||
|
inputdialog.o \
|
||||||
layout.o \
|
layout.o \
|
||||||
nodestore.o \
|
nodestore.o \
|
||||||
object.o \
|
object.o \
|
||||||
|
|
|
@ -24,7 +24,7 @@ VTE_TARGETS=
|
||||||
VTE_ASSEMBLY=
|
VTE_ASSEMBLY=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TARGETS = custom-cellrenderer.exe gtk-hello-world.exe button.exe calendar.exe subclass.exe menu.exe size.exe scribble.exe treeviewdemo.exe managedtreeviewdemo.exe testdnd.exe custom-widget.exe $(GNOME_TARGETS) $(GLADE_TARGETS) $(VTE_TARGETS)
|
TARGETS = custom-cellrenderer.exe gtk-hello-world.exe button.exe calendar.exe subclass.exe menu.exe size.exe scribble.exe scribble-xinput.exe treeviewdemo.exe managedtreeviewdemo.exe testdnd.exe custom-widget.exe $(GNOME_TARGETS) $(GLADE_TARGETS) $(VTE_TARGETS)
|
||||||
|
|
||||||
assemblies=../glib/glib-sharp.dll ../pango/pango-sharp.dll ../atk/atk-sharp.dll ../gdk/gdk-sharp.dll ../gtk/gtk-sharp.dll $(GNOME_ASSEMBLY) $(GLADE_ASSEMBLY) $(VTE_ASSEMBLY)
|
assemblies=../glib/glib-sharp.dll ../pango/pango-sharp.dll ../atk/atk-sharp.dll ../gdk/gdk-sharp.dll ../gtk/gtk-sharp.dll $(GNOME_ASSEMBLY) $(GLADE_ASSEMBLY) $(VTE_ASSEMBLY)
|
||||||
references=$(addprefix /r:, $(assemblies))
|
references=$(addprefix /r:, $(assemblies))
|
||||||
|
@ -65,6 +65,9 @@ size.exe: $(srcdir)/Size.cs $(assemblies)
|
||||||
scribble.exe: $(srcdir)/Scribble.cs $(assemblies)
|
scribble.exe: $(srcdir)/Scribble.cs $(assemblies)
|
||||||
$(CSC) /out:scribble.exe $(references) $(srcdir)/Scribble.cs
|
$(CSC) /out:scribble.exe $(references) $(srcdir)/Scribble.cs
|
||||||
|
|
||||||
|
scribble-xinput.exe: $(srcdir)/ScribbleXInput.cs $(assemblies)
|
||||||
|
$(CSC) /out:scribble-xinput.exe $(references) $(srcdir)/ScribbleXInput.cs
|
||||||
|
|
||||||
treeviewdemo.exe: $(srcdir)/TreeViewDemo.cs $(assemblies)
|
treeviewdemo.exe: $(srcdir)/TreeViewDemo.cs $(assemblies)
|
||||||
$(CSC) /out:treeviewdemo.exe $(references) $(srcdir)/TreeViewDemo.cs
|
$(CSC) /out:treeviewdemo.exe $(references) $(srcdir)/TreeViewDemo.cs
|
||||||
|
|
||||||
|
@ -107,6 +110,7 @@ EXTRA_DIST = \
|
||||||
Menu.cs \
|
Menu.cs \
|
||||||
Size.cs \
|
Size.cs \
|
||||||
Scribble.cs \
|
Scribble.cs \
|
||||||
|
ScribbleXInput.cs \
|
||||||
TreeViewDemo.cs \
|
TreeViewDemo.cs \
|
||||||
ManagedTreeViewDemo.cs \
|
ManagedTreeViewDemo.cs \
|
||||||
GladeViewer.cs \
|
GladeViewer.cs \
|
||||||
|
|
166
sample/ScribbleXInput.cs
Normal file
166
sample/ScribbleXInput.cs
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
// ScribbleXInput.cs - port of Gtk+ scribble demo
|
||||||
|
//
|
||||||
|
// Author: Manuel V. Santos <mvsl@telefonica.net>
|
||||||
|
//
|
||||||
|
// (c) 2002 Rachel Hestilow
|
||||||
|
// (c) 2004 Manuel V. Santos
|
||||||
|
|
||||||
|
namespace GtkSamples {
|
||||||
|
|
||||||
|
using Gtk;
|
||||||
|
using Gdk;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class ScribbleXInput {
|
||||||
|
private static Gtk.Window win;
|
||||||
|
private static Gtk.VBox vBox;
|
||||||
|
private static Gtk.Button inputButton;
|
||||||
|
private static Gtk.Button quitButton;
|
||||||
|
private static Gtk.DrawingArea darea;
|
||||||
|
private static Gdk.Pixmap pixmap = null;
|
||||||
|
private static Gtk.InputDialog inputDialog = null;
|
||||||
|
|
||||||
|
public static int Main (string[] args) {
|
||||||
|
Application.Init ();
|
||||||
|
win = new Gtk.Window ("Scribble XInput Demo");
|
||||||
|
win.DeleteEvent += new DeleteEventHandler (WindowDelete);
|
||||||
|
|
||||||
|
vBox = new VBox (false, 0);
|
||||||
|
win.Add (vBox);
|
||||||
|
|
||||||
|
darea = new Gtk.DrawingArea ();
|
||||||
|
darea.SetSizeRequest (200, 200);
|
||||||
|
darea.ExtensionEvents=ExtensionMode.Cursor;
|
||||||
|
vBox.PackStart (darea, true, true, 0);
|
||||||
|
|
||||||
|
darea.ExposeEvent += new ExposeEventHandler (ExposeEvent);
|
||||||
|
darea.ConfigureEvent += new ConfigureEventHandler (ConfigureEvent);
|
||||||
|
darea.MotionNotifyEvent += new MotionNotifyEventHandler (MotionNotifyEvent);
|
||||||
|
darea.ButtonPressEvent += new ButtonPressEventHandler (ButtonPressEvent);
|
||||||
|
darea.Events = EventMask.ExposureMask | EventMask.LeaveNotifyMask |
|
||||||
|
EventMask.ButtonPressMask | EventMask.PointerMotionMask;
|
||||||
|
|
||||||
|
inputButton = new Button("Input Dialog");
|
||||||
|
vBox.PackStart (inputButton, false, false, 0);
|
||||||
|
|
||||||
|
inputButton.Clicked += new EventHandler (InputButtonClicked);
|
||||||
|
|
||||||
|
quitButton = new Button("Quit");
|
||||||
|
vBox.PackStart (quitButton, false, false, 0);
|
||||||
|
|
||||||
|
quitButton.Clicked += new EventHandler (QuitButtonClicked);
|
||||||
|
|
||||||
|
win.ShowAll ();
|
||||||
|
Application.Run ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void InputButtonClicked (object obj, EventArgs args) {
|
||||||
|
if (inputDialog == null) {
|
||||||
|
inputDialog = new InputDialog ();
|
||||||
|
inputDialog.SaveButton.Hide ();
|
||||||
|
inputDialog.CloseButton.Clicked += new EventHandler(InputDialogClose);
|
||||||
|
inputDialog.DeleteEvent += new DeleteEventHandler(InputDialogDelete);
|
||||||
|
}
|
||||||
|
inputDialog.Present ();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void QuitButtonClicked (object obj, EventArgs args) {
|
||||||
|
Application.Quit ();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void WindowDelete (object obj, DeleteEventArgs args) {
|
||||||
|
Application.Quit ();
|
||||||
|
args.RetVal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void InputDialogClose (object obj, EventArgs args) {
|
||||||
|
inputDialog.Hide ();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void InputDialogDelete (object obj, DeleteEventArgs args) {
|
||||||
|
inputDialog.Hide ();
|
||||||
|
args.RetVal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ExposeEvent (object obj, ExposeEventArgs args) {
|
||||||
|
Gdk.Rectangle area = args.Event.Area;
|
||||||
|
args.Event.Window.DrawDrawable (darea.Style.ForegroundGC(darea.State),
|
||||||
|
pixmap,
|
||||||
|
area.X, area.Y,
|
||||||
|
area.X, area.Y,
|
||||||
|
area.Width, area.Height);
|
||||||
|
|
||||||
|
args.RetVal = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConfigureEvent (object obj, ConfigureEventArgs args) {
|
||||||
|
Gdk.EventConfigure ev = args.Event;
|
||||||
|
Gdk.Window window = ev.Window;
|
||||||
|
Gdk.Rectangle allocation = darea.Allocation;
|
||||||
|
|
||||||
|
pixmap = new Gdk.Pixmap (window, allocation.Width, allocation.Height, -1);
|
||||||
|
pixmap.DrawRectangle (darea.Style.WhiteGC, true, 0, 0,
|
||||||
|
allocation.Width, allocation.Height);
|
||||||
|
|
||||||
|
args.RetVal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void DrawBrush (Widget widget, InputSource source,
|
||||||
|
double x, double y, double pressure) {
|
||||||
|
Gdk.GC gc;
|
||||||
|
switch (source) {
|
||||||
|
case InputSource.Mouse:
|
||||||
|
gc = widget.Style.BlackGC;
|
||||||
|
break;
|
||||||
|
case InputSource.Pen:
|
||||||
|
gc = widget.Style.BlackGC;
|
||||||
|
break;
|
||||||
|
case InputSource.Eraser:
|
||||||
|
gc = widget.Style.WhiteGC;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
gc = widget.Style.BlackGC;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Gdk.Rectangle update_rect = new Gdk.Rectangle ();
|
||||||
|
update_rect.X = (int) (x - 10.0d * pressure);
|
||||||
|
update_rect.Y = (int) (y - 10.0d * pressure);
|
||||||
|
update_rect.Width = (int) (20.0d * pressure);
|
||||||
|
update_rect.Height = (int) (20.0d * pressure);
|
||||||
|
|
||||||
|
pixmap.DrawRectangle (gc, true,
|
||||||
|
update_rect.X, update_rect.Y,
|
||||||
|
update_rect.Width, update_rect.Height);
|
||||||
|
darea.QueueDrawArea (update_rect.X, update_rect.Y,
|
||||||
|
update_rect.Width, update_rect.Height);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ButtonPressEvent (object obj, ButtonPressEventArgs args) {
|
||||||
|
Gdk.EventButton ev = args.Event;
|
||||||
|
|
||||||
|
if (ev.Button == 1 && pixmap != null) {
|
||||||
|
double pressure;
|
||||||
|
ev.Device.GetAxis (ev.Axes, AxisUse.Pressure, out pressure);
|
||||||
|
DrawBrush ((Widget) obj, ev.Device.Source, ev.X, ev.Y, pressure);
|
||||||
|
}
|
||||||
|
args.RetVal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void MotionNotifyEvent (object obj, MotionNotifyEventArgs args) {
|
||||||
|
Gdk.EventMotion ev = args.Event;
|
||||||
|
Widget widget = (Widget) obj;
|
||||||
|
if ((ev.State & Gdk.ModifierType.Button1Mask) != 0 && pixmap != null) {
|
||||||
|
double x,y,pressure;
|
||||||
|
if (!ev.Device.GetAxis (ev.Axes, AxisUse.Pressure, out pressure)) {
|
||||||
|
pressure = 0.5;
|
||||||
|
}
|
||||||
|
DrawBrush (widget, ev.Device.Source, ev.X, ev.Y, pressure);
|
||||||
|
}
|
||||||
|
args.RetVal = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue