CAMLprim value ml_gdk_gc_get_values (value gc) { CAMLparam0(); GdkGCValues values; CAMLlocal2(ret, tmp); gdk_gc_get_values (GdkGC_val(gc), &values); ret = alloc (18, 0); tmp = Val_copy(values.foreground); Store_field(ret, 0, tmp); tmp = Val_copy(values.background); Store_field(ret, 1, tmp); if (values.font) { tmp = ml_some(Val_GdkFont(values.font)); Store_field(ret, 2, tmp); } else Store_field(ret, 2, Val_int(0)); Field(ret,3) = Val_function_type(values.function); Field(ret,4) = Val_fill(values.fill); if (values.tile) { tmp = ml_some(Val_GdkPixmap(values.tile)); Store_field(ret, 5, tmp); } else Store_field(ret, 5, Val_int(0)); if (values.stipple) { tmp = ml_some(Val_GdkPixmap(values.stipple)); Store_field(ret, 6, tmp); } else Store_field(ret, 6, Val_int(0)); if (values.clip_mask) { tmp = ml_some(Val_GdkPixmap(values.clip_mask)); Store_field(ret, 7, tmp); } else Store_field(ret, 7, Val_int(0)); Field(ret,8) = Val_subwindow_mode(values.subwindow_mode); Field(ret,9) = Val_int(values.ts_x_origin); Field(ret,10) = Val_int(values.ts_y_origin); Field(ret,11) = Val_int(values.clip_x_origin); Field(ret,12) = Val_int(values.clip_y_origin); Field(ret,13) = Val_bool(values.graphics_exposures); Field(ret,14) = Val_int(values.line_width); Field(ret,15) = Val_line_style(values.line_style); Field(ret,16) = Val_cap_style(values.cap_style); Field(ret,17) = Val_join_style(values.join_style); CAMLreturn(ret); }
CAMLprim value ml_gtk_text_view_get_iter_location (value tv, value ti) { GdkRectangle res; gtk_text_view_get_iter_location(GtkTextView_val(tv),GtkTextIter_val(ti), &res); return Val_copy(res); }
CAMLprim value ml_gdk_color_parse (char *spec) { GdkColor color; if (!gdk_color_parse (spec, &color)) ml_raise_gdk ("color_parse"); return Val_copy(color); }
CAMLprim value ml_gdk_event_new (value event_type) { GdkEvent event; memset (&event, 0, sizeof(GdkEvent)); event.type = Event_type_val(event_type); event.any.send_event = TRUE; return Val_copy(event); }
CAMLprim value ml_GdkRectangle (value x, value y, value width, value height) { GdkRectangle rectangle; rectangle.x = Int_val(x); rectangle.y = Int_val(y); rectangle.width = Int_val(width); rectangle.height = Int_val(height); return Val_copy(rectangle); }
CAMLprim value ml_GdkColor (value red, value green, value blue) { GdkColor color; color.red = Int_val(red); color.green = Int_val(green); color.blue = Int_val(blue); color.pixel = 0; return Val_copy(color); }
CAMLprim value ml_gtk_source_view_get_mark_category_background (value sv, value s, value c) { CAMLparam3(sv, s, c); CAMLlocal2(color, result); GdkColor dest; if (gtk_source_view_get_mark_category_background( GtkSourceView_val(sv), String_val(s), &dest)) { color = Val_copy(dest); result = alloc_small(1, 0); Field(result, 0) = color; } else result = Val_unit; CAMLreturn(result); }
CAMLprim value ml_gtk_text_view_get_visible_rect (value tv) { GdkRectangle res; gtk_text_view_get_visible_rect(GtkTextView_val(tv), &res); return Val_copy(res); }
CAMLprim value ml_gdk_color_black (value cmap) { GdkColor color; gdk_color_black (GdkColormap_val(cmap), &color); return Val_copy(color); }