summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2019-11-16 22:09:09 +0100
committerCamil Staps2019-11-16 22:09:09 +0100
commited690b87fecec98f5305d67b1f5962cf70a5bc4b (patch)
tree544e885f3d44af3c0dc63ebde67e524698908d21
parentUse abstract newtypes to hide pointers (diff)
Add PixelsAboveLines, PixelsBelowLines, and PixelsInsideWrap to control line spacing of GtkTextView
-rw-r--r--src/Gtk/Internal.dcl3
-rw-r--r--src/Gtk/Internal.icl15
-rw-r--r--src/Gtk/Types.dcl5
-rw-r--r--src/Gtk/Widgets.dcl12
-rw-r--r--src/Gtk/Widgets.icl9
5 files changed, 39 insertions, 5 deletions
diff --git a/src/Gtk/Internal.dcl b/src/Gtk/Internal.dcl
index 8950cf9..bd37efa 100644
--- a/src/Gtk/Internal.dcl
+++ b/src/Gtk/Internal.dcl
@@ -146,6 +146,9 @@ gtk_text_buffer_set_text :: !Pointer !String !Int !.a -> .a
gtk_text_view_new :: !.a -> (!Pointer, !.a)
gtk_text_view_get_buffer :: !Pointer -> Pointer
gtk_text_view_set_editable :: !Pointer !Bool !.a -> .a
+gtk_text_view_set_pixels_above_lines :: !Pointer !Int !.a -> .a
+gtk_text_view_set_pixels_below_lines :: !Pointer !Int !.a -> .a
+gtk_text_view_set_pixels_inside_wrap :: !Pointer !Int !.a -> .a
gtk_text_view_set_wrap_mode :: !Pointer !Int !.a -> .a
gtk_tree_model_get_iter_from_string :: !Pointer !String -> (!Bool, !{#Int})
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl
index 92a9009..89546ba 100644
--- a/src/Gtk/Internal.icl
+++ b/src/Gtk/Internal.icl
@@ -638,6 +638,21 @@ gtk_text_view_set_editable text_view setting env = code {
ccall gtk_text_view_set_editable "pI:V:A"
}
+gtk_text_view_set_pixels_above_lines :: !Pointer !Int !.a -> .a
+gtk_text_view_set_pixels_above_lines text_view px env = code {
+ ccall gtk_text_view_set_pixels_above_lines "pI:V:A"
+}
+
+gtk_text_view_set_pixels_below_lines :: !Pointer !Int !.a -> .a
+gtk_text_view_set_pixels_below_lines text_view px env = code {
+ ccall gtk_text_view_set_pixels_below_lines "pI:V:A"
+}
+
+gtk_text_view_set_pixels_inside_wrap :: !Pointer !Int !.a -> .a
+gtk_text_view_set_pixels_inside_wrap text_view px env = code {
+ ccall gtk_text_view_set_pixels_inside_wrap "pI:V:A"
+}
+
gtk_text_view_set_wrap_mode :: !Pointer !Int !.a -> .a
gtk_text_view_set_wrap_mode text_view mode env = code {
ccall gtk_text_view_set_wrap_mode "pI:V:A"
diff --git a/src/Gtk/Types.dcl b/src/Gtk/Types.dcl
index 1e2ed78..62b925c 100644
--- a/src/Gtk/Types.dcl
+++ b/src/Gtk/Types.dcl
@@ -115,6 +115,11 @@ instance toInt GtkIconSize
instance toInt GtkJustification
+:: GtkLineSpacingModifier
+ = PixelsAboveLines !Int
+ | PixelsBelowLines !Int
+ | PixelsInsideWrap !Int
+
:: GtkMargins =
{ left :: !Int
, top :: !Int
diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl
index bc1e0af..a9cb44c 100644
--- a/src/Gtk/Widgets.dcl
+++ b/src/Gtk/Widgets.dcl
@@ -25,11 +25,12 @@ from Gtk.Types import
:: GType, :: GValue,
:: GdkModifier,
:: GtkAlign, :: GtkButtonsType, :: GtkCompletionMode, :: GtkCSSClass,
- :: GtkDirection, :: GtkExpand, :: GtkFileChooserAction, :: GtkMargins,
- :: GtkMarkup, :: GtkMessageType, :: GtkModal, :: GtkOrientation,
- :: GtkPanedHandleWidth, :: GtkResize, :: GtkResponse,
- :: GtkScrollbarPolicy, :: GtkSensitivity, :: GtkShrink, :: GtkSizeRequest,
- :: GtkSpacing, :: GtkStylePriority, :: GtkText, :: GtkTitle, :: GtkWrapMode
+ :: GtkDirection, :: GtkExpand, :: GtkFileChooserAction,
+ :: GtkLineSpacingModifier, :: GtkMargins, :: GtkMarkup, :: GtkMessageType,
+ :: GtkModal, :: GtkOrientation, :: GtkPanedHandleWidth, :: GtkResize,
+ :: GtkResponse, :: GtkScrollbarPolicy, :: GtkSensitivity, :: GtkShrink,
+ :: GtkSizeRequest, :: GtkSpacing, :: GtkStylePriority, :: GtkText,
+ :: GtkTitle, :: GtkWrapMode
/**
* A `GtkAccelGroup` is needed for a `GtkAccelerator`. 'Accelerator' is Gtk's
@@ -350,6 +351,7 @@ instance gtkContainer GtkTextView
newTextView :: GtkM GtkTextView
getTextBuffer :: !GtkTextView -> GtkTextBuffer
+instance tune GtkTextView GtkLineSpacingModifier
instance tune GtkTextView GtkWrapMode
//* A tree view is a view on a `GtkListStore` with customizable columns.
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index 41aadab..4fec8d4 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -515,6 +515,15 @@ newTextView =
getTextBuffer :: !GtkTextView -> GtkTextBuffer
getTextBuffer (GtkTextView tv) = GtkTextBuffer (gtk_text_view_get_buffer tv)
+instance tune GtkTextView GtkLineSpacingModifier
+where
+ tune mod view=:(GtkTextView tv) = toState modify >>| pure view
+ where
+ modify = case mod of
+ PixelsAboveLines px -> gtk_text_view_set_pixels_above_lines tv px
+ PixelsBelowLines px -> gtk_text_view_set_pixels_below_lines tv px
+ PixelsInsideWrap px -> gtk_text_view_set_pixels_inside_wrap tv px
+
instance tune GtkTextView GtkWrapMode
where
tune mode view=:(GtkTextView tv) =