summaryrefslogtreecommitdiff
path: root/vendor/github.com/gotk3/gotk3/pango/pango-layout.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gotk3/gotk3/pango/pango-layout.go')
-rw-r--r--vendor/github.com/gotk3/gotk3/pango/pango-layout.go469
1 files changed, 469 insertions, 0 deletions
diff --git a/vendor/github.com/gotk3/gotk3/pango/pango-layout.go b/vendor/github.com/gotk3/gotk3/pango/pango-layout.go
new file mode 100644
index 0000000..3e3a01b
--- /dev/null
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-layout.go
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 2015- terrak <terrak1975@gmail.com>
+ *
+ * This file originated from: http://www.terrak.net/
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+package pango
+
+// #include <pango/pango.h>
+// #include "pango.go.h"
+import "C"
+import (
+ "unsafe"
+
+ "github.com/gotk3/gotk3/glib"
+)
+
+func init() {
+ tm := []glib.TypeMarshaler{
+ // Enums
+ {glib.Type(C.pango_alignment_get_type()), marshalAlignment},
+ {glib.Type(C.pango_ellipsize_mode_get_type()), marshalEllipsizeMode},
+ {glib.Type(C.pango_wrap_mode_get_type()), marshalWrapMode},
+
+ // Objects/Interfaces
+ // {glib.Type(C.pango_layout_get_type()), marshalLayout},
+ }
+ glib.RegisterGValueMarshalers(tm)
+}
+
+// Layout is a representation of PangoLayout.
+type Layout struct {
+ pangoLayout *C.PangoLayout
+}
+
+// Native returns a pointer to the underlying PangoLayout.
+func (v *Layout) Native() uintptr {
+ return uintptr(unsafe.Pointer(v.native()))
+}
+
+func (v *Layout) native() *C.PangoLayout {
+ return (*C.PangoLayout)(unsafe.Pointer(v.pangoLayout))
+}
+
+func WrapLayout(p uintptr) *Layout {
+ layout := new(Layout)
+ layout.pangoLayout = (*C.PangoLayout)(unsafe.Pointer(p))
+ return layout
+}
+
+// LayoutLine is a representation of PangoLayoutLine.
+type LayoutLine struct {
+ pangoLayoutLine *C.PangoLayout
+}
+
+// Native returns a pointer to the underlying PangoLayoutLine.
+func (v *LayoutLine) Native() uintptr {
+ return uintptr(unsafe.Pointer(v.native()))
+}
+
+func (v *LayoutLine) native() *C.PangoLayoutLine {
+ return (*C.PangoLayoutLine)(unsafe.Pointer(v.pangoLayoutLine))
+}
+
+/*
+ * Constants
+ */
+
+// Alignment is a representation of Pango's PangoAlignment.
+type Alignment int
+
+const (
+ ALIGN_LEFT Alignment = C.PANGO_ALIGN_LEFT
+ ALIGN_CENTER Alignment = C.PANGO_ALIGN_CENTER
+ ALIGN_RIGHT Alignment = C.PANGO_ALIGN_RIGHT
+)
+
+func marshalAlignment(p uintptr) (interface{}, error) {
+ c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
+ return Alignment(c), nil
+}
+
+// WrapMode is a representation of Pango's PangoWrapMode.
+type WrapMode int
+
+const (
+ WRAP_WORD WrapMode = C.PANGO_WRAP_WORD
+ WRAP_CHAR WrapMode = C.PANGO_WRAP_CHAR
+ WRAP_WORD_CHAR WrapMode = C.PANGO_WRAP_WORD_CHAR
+)
+
+func marshalWrapMode(p uintptr) (interface{}, error) {
+ c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
+ return WrapMode(c), nil
+}
+
+// EllipsizeMode is a representation of Pango's PangoEllipsizeMode.
+type EllipsizeMode int
+
+const (
+ ELLIPSIZE_NONE EllipsizeMode = C.PANGO_ELLIPSIZE_NONE
+ ELLIPSIZE_START EllipsizeMode = C.PANGO_ELLIPSIZE_START
+ ELLIPSIZE_MIDDLE EllipsizeMode = C.PANGO_ELLIPSIZE_MIDDLE
+ ELLIPSIZE_END EllipsizeMode = C.PANGO_ELLIPSIZE_END
+)
+
+func marshalEllipsizeMode(p uintptr) (interface{}, error) {
+ c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
+ return EllipsizeMode(c), nil
+}
+
+/*
+func marshalLayout(p uintptr) (interface{}, error) {
+ c := C.g_value_get_object((*C.GValue)(unsafe.Pointer(p)))
+ obj := wrapObject(unsafe.Pointer(c))
+ return wrapLayout(obj), nil
+}
+
+func wrapLayout(obj *glib.Object) *Layout {
+ return &Layout{obj}
+}
+*/
+
+//PangoLayout *pango_layout_new (PangoContext *context);
+func LayoutNew(context *Context) *Layout {
+ c := C.pango_layout_new(context.native())
+
+ layout := new(Layout)
+ layout.pangoLayout = (*C.PangoLayout)(c)
+ return layout
+}
+
+//PangoLayout *pango_layout_copy (PangoLayout *src);
+func (v *Layout) Copy() *Layout {
+ c := C.pango_layout_copy(v.native())
+
+ layout := new(Layout)
+ layout.pangoLayout = (*C.PangoLayout)(c)
+ return layout
+}
+
+//PangoContext *pango_layout_get_context (PangoLayout *layout);
+func (v *Layout) GetContext() *Context {
+ c := C.pango_layout_get_context(v.native())
+
+ context := new(Context)
+ context.pangoContext = (*C.PangoContext)(c)
+
+ return context
+}
+
+//void pango_layout_set_attributes (PangoLayout *layout,
+// PangoAttrList *attrs);
+func (v *Layout) SetAttributes(attrs *AttrList) {
+ C.pango_layout_set_attributes(v.native(), attrs.native())
+}
+
+//PangoAttrList *pango_layout_get_attributes (PangoLayout *layout);
+func (v *Layout) GetAttributes() *AttrList {
+ c := C.pango_layout_get_attributes(v.native())
+
+ attrList := new(AttrList)
+ attrList.pangoAttrList = (*C.PangoAttrList)(c)
+
+ return attrList
+}
+
+//void pango_layout_set_text (PangoLayout *layout,
+// const char *text,
+// int length);
+func (v *Layout) SetText(text string, length int) {
+ cstr := C.CString(text)
+ defer C.free(unsafe.Pointer(cstr))
+ C.pango_layout_set_text(v.native(), (*C.char)(cstr), (C.int)(length))
+}
+
+//const char *pango_layout_get_text (PangoLayout *layout);
+func (v *Layout) GetText() string {
+ c := C.pango_layout_get_text(v.native())
+ return C.GoString((*C.char)(c))
+}
+
+//gint pango_layout_get_character_count (PangoLayout *layout);
+func (v *Layout) GetCharacterCount() int {
+ c := C.pango_layout_get_character_count(v.native())
+ return int(c)
+}
+
+//void pango_layout_set_markup (PangoLayout *layout,
+// const char *markup,
+// int length);
+func (v *Layout) SetMarkup(text string, length int) {
+ cstr := C.CString(text)
+ defer C.free(unsafe.Pointer(cstr))
+ C.pango_layout_set_markup(v.native(), (*C.char)(cstr), (C.int)(length))
+}
+
+//void pango_layout_set_markup_with_accel (PangoLayout *layout,
+// const char *markup,
+// int length,
+// gunichar accel_marker,
+// gunichar *accel_char);
+
+/*
+func (v *Layout)SetMarkupWithAccel (text string, length int, accel_marker, accel_char rune){
+ cstr := C.CString(text)
+ defer C.free(unsafe.Pointer(cstr))
+ C.pango_layout_set_markup_with_accel (v.native(), (*C.char)(cstr), (C.int)(length), (C.gunichar)(accel_marker), (C.gunichar)(accel_char) )
+}
+*/
+
+//void pango_layout_set_font_description (PangoLayout *layout,
+// const PangoFontDescription *desc);
+
+func (v *Layout) SetFontDescription(desc *FontDescription) {
+ C.pango_layout_set_font_description(v.native(), desc.native())
+}
+
+//const PangoFontDescription *pango_layout_get_font_description (PangoLayout *layout);
+
+func (v *Layout) GetFontDescription() *FontDescription {
+ c := C.pango_layout_get_font_description(v.native())
+
+ desc := new(FontDescription)
+ desc.pangoFontDescription = (*C.PangoFontDescription)(c)
+
+ return desc
+}
+
+//void pango_layout_set_width (PangoLayout *layout,
+// int width);
+
+func (v *Layout) SetWidth(width int) {
+ C.pango_layout_set_width(v.native(), C.int(width))
+}
+
+//int pango_layout_get_width (PangoLayout *layout);
+
+func (v *Layout) GetWidth() int {
+ c := C.pango_layout_get_width(v.native())
+ return int(c)
+}
+
+//void pango_layout_set_height (PangoLayout *layout,
+// int height);
+
+func (v *Layout) SetHeight(width int) {
+ C.pango_layout_set_height(v.native(), C.int(width))
+}
+
+//int pango_layout_get_height (PangoLayout *layout);
+
+func (v *Layout) GetHeight() int {
+ c := C.pango_layout_get_height(v.native())
+ return int(c)
+}
+
+//void pango_layout_set_wrap (PangoLayout *layout,
+// PangoWrapMode wrap);
+
+func (v *Layout) SetWrap(wrap WrapMode) {
+ C.pango_layout_set_wrap(v.native(), C.PangoWrapMode(wrap))
+}
+
+//PangoWrapMode pango_layout_get_wrap (PangoLayout *layout);
+
+func (v *Layout) GetWrap() WrapMode {
+ c := C.pango_layout_get_wrap(v.native())
+ return WrapMode(c)
+}
+
+//gboolean pango_layout_is_wrapped (PangoLayout *layout);
+
+func (v *Layout) IsWrapped() bool {
+ c := C.pango_layout_is_wrapped(v.native())
+ return gobool(c)
+}
+
+//void pango_layout_set_indent (PangoLayout *layout,
+// int indent);
+
+func (v *Layout) SetIndent(indent int) {
+ C.pango_layout_set_indent(v.native(), C.int(indent))
+}
+
+//int pango_layout_get_indent (PangoLayout *layout);
+
+func (v *Layout) GetIndent() int {
+ c := C.pango_layout_get_indent(v.native())
+ return int(c)
+}
+
+//void pango_layout_set_spacing (PangoLayout *layout,
+// int spacing);
+//int pango_layout_get_spacing (PangoLayout *layout);
+//void pango_layout_set_justify (PangoLayout *layout,
+// gboolean justify);
+//gboolean pango_layout_get_justify (PangoLayout *layout);
+//void pango_layout_set_auto_dir (PangoLayout *layout,
+// gboolean auto_dir);
+//gboolean pango_layout_get_auto_dir (PangoLayout *layout);
+//void pango_layout_set_alignment (PangoLayout *layout,
+// PangoAlignment alignment);
+//PangoAlignment pango_layout_get_alignment (PangoLayout *layout);
+//
+//void pango_layout_set_tabs (PangoLayout *layout,
+// PangoTabArray *tabs);
+//
+//PangoTabArray* pango_layout_get_tabs (PangoLayout *layout);
+//
+//void pango_layout_set_single_paragraph_mode (PangoLayout *layout,
+// gboolean setting);
+//gboolean pango_layout_get_single_paragraph_mode (PangoLayout *layout);
+//
+//void pango_layout_set_ellipsize (PangoLayout *layout,
+// PangoEllipsizeMode ellipsize);
+//PangoEllipsizeMode pango_layout_get_ellipsize (PangoLayout *layout);
+//gboolean pango_layout_is_ellipsized (PangoLayout *layout);
+//
+//int pango_layout_get_unknown_glyphs_count (PangoLayout *layout);
+//
+//void pango_layout_context_changed (PangoLayout *layout);
+//guint pango_layout_get_serial (PangoLayout *layout);
+//
+//void pango_layout_get_log_attrs (PangoLayout *layout,
+// PangoLogAttr **attrs,
+// gint *n_attrs);
+//
+//const PangoLogAttr *pango_layout_get_log_attrs_readonly (PangoLayout *layout,
+// gint *n_attrs);
+//
+//void pango_layout_index_to_pos (PangoLayout *layout,
+// int index_,
+// PangoRectangle *pos);
+//void pango_layout_index_to_line_x (PangoLayout *layout,
+// int index_,
+// gboolean trailing,
+// int *line,
+// int *x_pos);
+//void pango_layout_get_cursor_pos (PangoLayout *layout,
+// int index_,
+// PangoRectangle *strong_pos,
+// PangoRectangle *weak_pos);
+//void pango_layout_move_cursor_visually (PangoLayout *layout,
+// gboolean strong,
+// int old_index,
+// int old_trailing,
+// int direction,
+// int *new_index,
+// int *new_trailing);
+//gboolean pango_layout_xy_to_index (PangoLayout *layout,
+// int x,
+// int y,
+// int *index_,
+// int *trailing);
+//void pango_layout_get_extents (PangoLayout *layout,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//void pango_layout_get_pixel_extents (PangoLayout *layout,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+
+//void pango_layout_get_size (PangoLayout *layout,
+// int *width,
+// int *height);
+func (v *Layout) GetSize() (int, int) {
+ var w, h C.int
+ C.pango_layout_get_size(v.native(), &w, &h)
+ return int(w), int(h)
+}
+
+//void pango_layout_get_pixel_size (PangoLayout *layout,
+// int *width,
+// int *height);
+//int pango_layout_get_baseline (PangoLayout *layout);
+//
+//int pango_layout_get_line_count (PangoLayout *layout);
+//PangoLayoutLine *pango_layout_get_line (PangoLayout *layout,
+// int line);
+//PangoLayoutLine *pango_layout_get_line_readonly (PangoLayout *layout,
+// int line);
+//GSList * pango_layout_get_lines (PangoLayout *layout);
+//GSList * pango_layout_get_lines_readonly (PangoLayout *layout);
+//
+//
+//#define PANGO_TYPE_LAYOUT_LINE (pango_layout_line_get_type ())
+//
+//GType pango_layout_line_get_type (void) G_GNUC_CONST;
+//
+//PangoLayoutLine *pango_layout_line_ref (PangoLayoutLine *line);
+//void pango_layout_line_unref (PangoLayoutLine *line);
+//
+//gboolean pango_layout_line_x_to_index (PangoLayoutLine *line,
+// int x_pos,
+// int *index_,
+// int *trailing);
+//void pango_layout_line_index_to_x (PangoLayoutLine *line,
+// int index_,
+// gboolean trailing,
+// int *x_pos);
+//void pango_layout_line_get_x_ranges (PangoLayoutLine *line,
+// int start_index,
+// int end_index,
+// int **ranges,
+// int *n_ranges);
+//void pango_layout_line_get_extents (PangoLayoutLine *line,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//void pango_layout_line_get_pixel_extents (PangoLayoutLine *layout_line,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//
+//typedef struct _PangoLayoutIter PangoLayoutIter;
+//
+//#define PANGO_TYPE_LAYOUT_ITER (pango_layout_iter_get_type ())
+//
+//GType pango_layout_iter_get_type (void) G_GNUC_CONST;
+//
+//PangoLayoutIter *pango_layout_get_iter (PangoLayout *layout);
+//PangoLayoutIter *pango_layout_iter_copy (PangoLayoutIter *iter);
+//void pango_layout_iter_free (PangoLayoutIter *iter);
+//
+//int pango_layout_iter_get_index (PangoLayoutIter *iter);
+//PangoLayoutRun *pango_layout_iter_get_run (PangoLayoutIter *iter);
+//PangoLayoutRun *pango_layout_iter_get_run_readonly (PangoLayoutIter *iter);
+//PangoLayoutLine *pango_layout_iter_get_line (PangoLayoutIter *iter);
+//PangoLayoutLine *pango_layout_iter_get_line_readonly (PangoLayoutIter *iter);
+//gboolean pango_layout_iter_at_last_line (PangoLayoutIter *iter);
+//PangoLayout *pango_layout_iter_get_layout (PangoLayoutIter *iter);
+//
+//gboolean pango_layout_iter_next_char (PangoLayoutIter *iter);
+//gboolean pango_layout_iter_next_cluster (PangoLayoutIter *iter);
+//gboolean pango_layout_iter_next_run (PangoLayoutIter *iter);
+//gboolean pango_layout_iter_next_line (PangoLayoutIter *iter);
+//
+//void pango_layout_iter_get_char_extents (PangoLayoutIter *iter,
+// PangoRectangle *logical_rect);
+//void pango_layout_iter_get_cluster_extents (PangoLayoutIter *iter,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//void pango_layout_iter_get_run_extents (PangoLayoutIter *iter,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//void pango_layout_iter_get_line_extents (PangoLayoutIter *iter,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+/* All the yranges meet, unlike the logical_rect's (i.e. the yranges
+ * assign between-line spacing to the nearest line)
+ */
+//void pango_layout_iter_get_line_yrange (PangoLayoutIter *iter,
+// int *y0_,
+// int *y1_);
+//void pango_layout_iter_get_layout_extents (PangoLayoutIter *iter,
+// PangoRectangle *ink_rect,
+// PangoRectangle *logical_rect);
+//int pango_layout_iter_get_baseline (PangoLayoutIter *iter);
+//