CAMLprim value ml_string_at_pointer (value ofs, value len, value ptr) { char *start = ((char*)Pointer_val(ptr)) + Option_val(ofs, Int_val, 0); int length = Option_val(len, Int_val, strlen(start)); value ret = alloc_string(length); memcpy ((char*)ret, start, length); return ret; }
CAMLprim value ml_gtk_text_buffer_create_tag_2 (value arg1, value arg2, value arg3, value arg4) { return (Val_GtkTextTag (gtk_text_buffer_create_tag (GtkTextBuffer_val(arg1),Option_val(arg2,String_val,NULL), String_val(arg3),String_val(arg4),NULL)));};
CAMLprim value ml_gtk_text_iter_backward_find_char(value i,value fun,value ito) { CAMLparam1(fun); CAMLreturn (Val_bool (gtk_text_iter_backward_find_char(GtkTextIter_val(i), ml_gtk_text_char_predicate, &fun, Option_val(ito,GtkTextIter_val,NULL)))); }
CAMLextern_C value caml_create_sfRenderStates( value blendMode, value transform, value texture, value shader, value unit) { unsigned int pr = 0; sf::RenderStates *states = NULL; if (blendMode != Val_none) pr |= 0b0001; if (transform != Val_none) pr |= 0b0010; if (texture != Val_none) pr |= 0b0100; if (shader != Val_none) pr |= 0b1000; switch (pr) { case 0b0001: states = new sf::RenderStates( SfBlendMode_val(Some_val(blendMode))); break; case 0b0010: states = new sf::RenderStates( SfTransform_val_s(Some_val(transform))); break; case 0b0100: states = new sf::RenderStates( SfTexture_val(Some_val(texture))); break; case 0b1000: states = new sf::RenderStates( SfShader_val(Some_val(shader))); break; default: states = new sf::RenderStates( Option_val(blendMode, SfBlendMode_val, sf::BlendAlpha), Option_val(transform, SfTransform_val_s, sf::Transform()), Option_val(texture, SfTexture_val, NULL), Option_val(shader, SfShader_val, NULL)); } return Val_sfRenderStates(states); }
CAMLprim value ml_gtk_text_buffer_paste_clipboard (value arg1, value arg2, value arg3, value arg4) { gtk_text_buffer_paste_clipboard (GtkTextBuffer_val(arg1), GtkClipboard_val(arg2), Option_val(arg3,GtkTextIter_val,NULL), Bool_val(arg4) ); return(Val_unit); }
CAMLprim value ml_gdk_pixmap_colormap_create_from_xpm_d (value window, value colormap, value transparent, char **data) { CAMLparam0(); GdkPixmap *pixmap; GdkBitmap *mask = NULL; CAMLlocal2(vpixmap, vmask); value ret; pixmap = gdk_pixmap_colormap_create_from_xpm_d (Option_val(window,GdkWindow_val,NULL), Option_val(colormap,GdkColormap_val,NULL), &mask, Option_val(transparent,GdkColor_val,NULL), data); if (!pixmap) ml_raise_gdk ("Gdk.Pixmap.create_from_xpm_data"); vpixmap = Val_GdkPixmap_no_ref (pixmap); vmask = Val_GdkBitmap_no_ref (mask); ret = alloc_small (2, 0); Field(ret,0) = vpixmap; Field(ret,1) = vmask; CAMLreturn(ret); }
{ value arg = Val_GtkTextTag(t); callback_exn (*(value*)user_data, arg); } CAMLprim value ml_gtk_text_tag_table_foreach (value t, value fun) { CAMLparam1(fun); gtk_text_tag_table_foreach(GtkTextTagTable_val(t), tag_foreach_func, &fun); CAMLreturn(Val_unit); } /* gtktextbuffer */ ML_1 (gtk_text_buffer_new, Option_val(arg1,GtkTextTagTable_val,NULL) Ignore, Val_GtkTextBuffer_new) ML_1 (gtk_text_buffer_get_line_count,GtkTextBuffer_val,Val_int) ML_1 (gtk_text_buffer_get_char_count,GtkTextBuffer_val,Val_int) /* ML_1 (gtk_text_buffer_get_tag_table,GtkTextBuffer_val,Val_GtkTextTagTable) */ /* [Benjamin] WARNING : something strange happens here : various segfaults we we insert non constant string a lot of times and the signal "insert-text" is connected. See : let bug () =
/* gtkwidget.h */ ML_1 (gtk_widget_unparent, GtkWidget_val, Unit) ML_1 (gtk_widget_show, GtkWidget_val, Unit) ML_1 (gtk_widget_show_now, GtkWidget_val, Unit) ML_1 (gtk_widget_show_all, GtkWidget_val, Unit) ML_1 (gtk_widget_hide, GtkWidget_val, Unit) ML_1 (gtk_widget_hide_all, GtkWidget_val, Unit) ML_1 (gtk_widget_map, GtkWidget_val, Unit) ML_1 (gtk_widget_unmap, GtkWidget_val, Unit) ML_1 (gtk_widget_realize, GtkWidget_val, Unit) ML_1 (gtk_widget_unrealize, GtkWidget_val, Unit) ML_1 (gtk_widget_queue_draw, GtkWidget_val, Unit) ML_1 (gtk_widget_queue_resize, GtkWidget_val, Unit) ML_2 (gtk_widget_draw, GtkWidget_val, Option_val(arg2,GdkRectangle_val,NULL) Ignore, Unit) /* ML_1 (gtk_widget_draw_focus, GtkWidget_val, Unit) ML_1 (gtk_widget_draw_default, GtkWidget_val, Unit) ML_1 (gtk_widget_draw_children, GtkWidget_val, Unit) */ ML_2 (gtk_widget_event, GtkWidget_val, GdkEvent_val, Val_bool) ML_1 (gtk_widget_activate, GtkWidget_val, Val_bool) ML_2 (gtk_widget_reparent, GtkWidget_val, GtkWidget_val, Unit) /* ML_3 (gtk_widget_popup, GtkWidget_val, Int_val, Int_val, Unit) */ CAMLprim value ml_gtk_widget_intersect (value w, value area) { GdkRectangle inter; if (gtk_widget_intersect(GtkWidget_val(w), GdkRectangle_val(area), &inter)) return ml_some (Val_copy (inter)); return Val_unit;
ML_6 (gdk_draw_line, GdkDrawable_val, GdkGC_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc6 (ml_gdk_draw_line) ML_7 (gdk_draw_rectangle, GdkDrawable_val, GdkGC_val, Bool_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc7 (ml_gdk_draw_rectangle) ML_9 (gdk_draw_arc, GdkDrawable_val, GdkGC_val, Bool_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc9 (ml_gdk_draw_arc) ML_4 (gdk_draw_polygon, GdkDrawable_val, GdkGC_val, Bool_val, Insert(PointArray_val(arg4)) PointArrayLen_val, Unit) ML_6 (gdk_draw_string, GdkDrawable_val, GdkFont_val, GdkGC_val, Int_val, Int_val, String_val, Unit) ML_bc6 (ml_gdk_draw_string) ML_7 (gdk_draw_layout_with_colors, GdkDrawable_val, GdkGC_val, Int_val, Int_val, PangoLayout_val, Option_val(arg6,GdkColor_val,NULL) Ignore, Option_val(arg7,GdkColor_val,NULL) Ignore, Unit) ML_bc7 (ml_gdk_draw_layout_with_colors) /* ML_9 (gdk_draw_bitmap, GdkDrawable_val, GdkGC_val, GdkBitmap_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc9 (ml_gdk_draw_bitmap) */ ML_9 (gdk_draw_pixmap, GdkDrawable_val, GdkGC_val, GdkPixmap_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc9 (ml_gdk_draw_pixmap) ML_9 (gdk_draw_image, GdkDrawable_val, GdkGC_val, GdkImage_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit) ML_bc9 (ml_gdk_draw_image) ML_3 (gdk_draw_points, GdkDrawable_val, GdkGC_val, Insert(PointArray_val(arg3)) PointArrayLen_val, Unit) ML_3 (gdk_draw_segments, GdkDrawable_val, GdkGC_val, Insert(SegmentArray_val(arg3)) SegmentArrayLen_val, Unit)
GtkWidget* custom_completion_provider_get_info_widget (GtkSourceCompletionProvider* p, GtkSourceCompletionProposal *proposal) { g_return_val_if_fail (IS_CUSTOM_COMPLETION_PROVIDER(p), NULL); CustomCompletionProvider *obj = (CustomCompletionProvider *) p; return Option_val (METHOD1(obj, 5, Val_GtkSourceCompletionProposal(proposal)), GtkWidget_val, NULL); }