git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@8232 67ed7778-7388-44ab-90cf-0a291f65f57c
365 lines
8.9 KiB
C#
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;
|
|
|
|
}
|
|
}
|
|
}
|