Re: tab stops in different positions on different lines with GtkSourceView (or GtkTextView)
- From: Stéphan Kochen <stephan kochen nl>
- To: Adam Tertial <adamtertial yahoo co uk>
- Cc: gnome-devtools gnome org
- Subject: Re: tab stops in different positions on different lines with GtkSourceView (or GtkTextView)
- Date: Thu, 11 Jan 2007 08:45:01 +0100
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Adam Tertial schreef:
> --- Stéphan Kochen <stephan kochen nl> wrote:
>> Adam Tertial schreef:
>>> --- Paolo Borelli <pborelli katamail com> wrote:
>>>> On mar, 2007-01-09 at 22:37 +0000, Adam Tertial
>>>> wrote:
>>>>> Hi
>>>>>
>>>>> I want to do something a little unusual with
>>>>> GtkSourceView (or failing that GtkTextView) -
>> have
>>>> tab
>>>>> stops in different positions on different lines
>>>>> ("paragraphs"). An example might be to have the
>>>> first
>>>>> line have tab stops at 4, 7, 13, 16 while the
>>>> second
>>>>> line has tab stops at 5, 10, 14, 17.
>>>>>
>>>>> Is this possible in any way? - I can't see
>>>> anything
>>>>> apart from gtk_source_view_set_tabs_width(), and
>>>> that
>>>>> only takes a pointer to the control and one
>> guint.
>>>>> gtk_text_view_set_tabs ()
>>>> >From the API docs of GtkTextView:
>>>>
>>>> "void gtk_text_view_set_tabs
>>>> (GtkTextView *text_view,
>>>>
>>>> PangoTabArray *tabs);
>>>>
>>>> Sets the default tab stops for paragraphs in
>>>> text_view. Tags in the
>>>> buffer may override the default."
>>>>
>>>> So it seems to imply that it is possible to do
>> what
>>>> you want with
>>>> tags... dunno the details though :)
>>> Yeah, I saw that, but can this be applied to a
>>> GtkSourceView control somehow?
>> I believe GtkSourceView is a subclass of
>> GtkTextView. So it'd simply be:
>> gtk_text_view_set_tabs (GTK_TEXT_VIEW
>> (yoursourceview), yourtabs);
>
> Perfect! :)
>
>> However, this only sets the default tabs.
>
> What do you mean by "default tabs" and why would that
> be a problem?
It sets the tab spacing for the entire TextView. So if the TextBuffer
doesn't have any TextTags overriding the tab spacing, it falls back to
that default.
It's not really a problem, but it's not what you were aiming for either.
If you want specific regions to have different tab spacing, you have to
use TextTags.
>> According to the documentation, you can create a
>> tag, and set the "tabs"
>> and "tabs-set" properties on it:
>>
> http://developer.gnome.org/doc/API/2.0/gtk/GtkTextTag.html#GtkTextTag--tabs
>> Then just apply it to a region in the buffer.
>
> Ahh, good stuff - thanks for the info!
Anytime. :)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFFper9cFUq0gzqDwQRApK9AKDf494XX4d2Ne2m8ggMvuhYNGR/YwCeJKan
ilWMj7mD7rXgpHhPPm/tnvU=
=Hu5V
-----END PGP SIGNATURE-----
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]