Files
libgphoto2/bindings/csharp/CameraWidget.cs
2005-08-31 21:24:59 +00:00

365 lines
8.9 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace LibGPhoto2
{
public enum CameraWidgetType
{ /* Value (get/set): */
GP_WIDGET_WINDOW,
GP_WIDGET_SECTION,
GP_WIDGET_TEXT, /* char * */
GP_WIDGET_RANGE, /* float */
GP_WIDGET_TOGGLE, /* int */
GP_WIDGET_RADIO, /* char * */
GP_WIDGET_MENU, /* char * */
GP_WIDGET_BUTTON, /* CameraWidgetCallback */
GP_WIDGET_DATE /* int */
}
public class CameraWidget : IDisposable
{
protected HandleRef handle;
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_ref (HandleRef widget);
protected CameraWidget (IntPtr native)
{
this.handle = new HandleRef (this, native);
gp_widget_ref (this.Handle);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_new (CameraWidgetType type, string lable, out IntPtr widget);
public CameraWidget (CameraWidgetType type, string label)
{
ErrorCode result;
unsafe
{
IntPtr native;
result = gp_widget_new(type, label,out native);
this.handle = new HandleRef (this, native);
}
if (Error.IsError(result)) throw Error.ErrorException(result);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
~CameraWidget()
{
Dispose(false);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_unref (HandleRef widget);
protected virtual void Dispose (bool disposing)
{
ErrorCode result;
unsafe
{
if (this.Handle.Handle != IntPtr.Zero)
{
result = gp_widget_unref(this.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
}
}
public HandleRef Handle
{
get {
return handle;
}
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_append (HandleRef widget, HandleRef child);
public void Append(CameraWidget child)
{
ErrorCode result;
result = gp_widget_append(this.Handle, child.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_prepend (HandleRef widget, HandleRef child);
public void Prepend(CameraWidget child)
{
ErrorCode result;
result = gp_widget_prepend(this.Handle, child.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_count_children (HandleRef widget);
public int ChildCount
{
get
{
ErrorCode result;
result = gp_widget_count_children(this.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
return (int)result;
}
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_child (HandleRef widget, int child_number, out IntPtr child);
public CameraWidget GetChild (int n)
{
ErrorCode result;
IntPtr native;
result = gp_widget_get_child(this.Handle, n, out native);
CameraWidget child = new CameraWidget(native);
if (Error.IsError(result)) throw Error.ErrorException(result);
return child;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_child_by_label (HandleRef widget, string label, out IntPtr child);
public CameraWidget GetChild (string label)
{
ErrorCode result;
IntPtr native;
result = gp_widget_get_child_by_label(this.Handle, label, out native);
CameraWidget child = new CameraWidget (native);
if (Error.IsError(result)) throw Error.ErrorException(result);
return child;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_child_by_id (HandleRef widget, int id, out IntPtr child);
public CameraWidget GetChildByID (int id)
{
ErrorCode result;
IntPtr native;
result = gp_widget_get_child_by_id(this.Handle, id, out native);
CameraWidget child = new CameraWidget (native);
if (Error.IsError(result)) throw Error.ErrorException(result);
return child;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_root (HandleRef widget, out IntPtr root);
public CameraWidget GetRoot ()
{
ErrorCode result;
IntPtr native;
result = gp_widget_get_root (this.Handle, out native);
CameraWidget root = new CameraWidget(native);
if (Error.IsError(result)) throw Error.ErrorException(result);
return root;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_set_info (HandleRef widget, string info);
public void SetInfo (string info)
{
ErrorCode result;
result = gp_widget_set_info(this.Handle, info);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_info (HandleRef widget, out string info);
public string GetInfo ()
{
ErrorCode result;
string info;
result = gp_widget_get_info (this.Handle, out info);
if (Error.IsError(result)) throw Error.ErrorException(result);
return info;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_id (HandleRef widget, out int id);
public int GetID ()
{
ErrorCode result;
int id;
result = gp_widget_get_id (this.Handle, out id);
if (Error.IsError(result)) throw Error.ErrorException(result);
return id;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_type (HandleRef widget, out CameraWidgetType type);
public CameraWidgetType GetWidgetType ()
{
ErrorCode result;
CameraWidgetType widget_type;
result = gp_widget_get_type(this.Handle, out widget_type);
if (Error.IsError(result)) throw Error.ErrorException(result);
return widget_type;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_label (HandleRef widget, out string label);
public string GetLabel ()
{
ErrorCode result;
string label;
result = gp_widget_get_label(this.Handle, out label);
if (Error.IsError(result)) throw Error.ErrorException(result);
return label;
}
/*public void SetValue (string value)
{
ErrorCode result;
unsafe
{
result = _CameraWidget.gp_widget_set_value(obj, Marshal.StringToHGlobalAnsi(value));
}
if (Error.IsError(result)) throw Error.ErrorException(result);
}
public void SetValue (float value)
{
ErrorCode result;
unsafe
{
IntPtr ptr = (void*)value;
result = _CameraWidget.gp_widget_set_value(obj, ptr);
}
if (Error.IsError(result)) throw Error.ErrorException(result);
}
public void SetValue (int value)
{
ErrorCode result;
unsafe
{
IntPtr ptr = value;
result = _CameraWidget.gp_widget_set_value(obj, ptr);
}
if (Error.IsError(result)) throw Error.ErrorException(result);
}
/*public void SetValue (CameraWidgetCallback value)
{
ErrorCode result;
unsafe
{
IntPtr ptr = &value;
result = _CameraWidget.gp_widget_set_value(obj, ptr);
}
if (Error.IsError(result)) throw Error.ErrorException(result);
}*/
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_range (HandleRef range, out
float min, out float max, out float increment);
public void GetRange (out float min, out float max, out float increment)
{
ErrorCode result;
result = gp_widget_get_range(this.Handle, out min, out max, out increment);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_add_choice (HandleRef widget, string choice);
public void AddChoice (string choice)
{
ErrorCode result;
result = gp_widget_add_choice (this.Handle, choice);
if (Error.IsError(result)) throw Error.ErrorException(result);
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_count_choices (HandleRef widget);
public int ChoicesCount ()
{
ErrorCode result;
result = gp_widget_count_choices(this.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
return (int)result;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_get_choice (HandleRef widget, int choice_number, out string choice);
public string GetChoice (int n)
{
ErrorCode result;
string choice;
result = gp_widget_get_choice(this.Handle, n, out choice);
if (Error.IsError(result)) throw Error.ErrorException(result);
return choice;
}
[DllImport ("libgphoto2.so")]
internal static extern ErrorCode gp_widget_changed (HandleRef widget);
public bool Changed ()
{
ErrorCode result;
result = gp_widget_changed(this.Handle);
if (Error.IsError(result)) throw Error.ErrorException(result);
if ((int)result == 1)
return true;
else
return false;
}
}
}