Top | ![]() |
![]() |
![]() |
![]() |
InfTextUser * | active-user | Read / Write |
InfIo * | io | Read / Write / Construct Only |
gboolean | show-remote-current-lines | Read / Write |
gboolean | show-remote-cursors | Read / Write |
gboolean | show-remote-selections | Read / Write |
InfUserTable * | user-table | Read / Write / Construct Only |
GtkTextView * | view | Read / Write / Construct Only |
InfTextGtkView is a helper object which, as long as it is alive, draws the cursor position, selected text of remote users into a GtkTextView widget. It can also highlight the current line of a remote user in a similar way the GtkSourceView widget can highlight the current line of the local user.
This functionality was not implemented by subclassing GtkTextView such that it can also be used with existing subclasses, such as GtkSourceView.
With the function inf_text_gtk_view_set_active_user()
the local
InfTextUser who is editing the text can be set, if there is any. The
insertion position, seleceted text or current line are not drawn for this
user, since the normal GtkTextView takes care of that already. This
assumes the local user cursor position and selection is synchronized to the
corresponding InfTextUser properties, which is automatically the case when
a InfTextGtkBuffer is used for the buffer the GtkTextView is displaying.
See InfTextGtkViewport for drawing a marker at remote users' location into the scrollbar.
InfTextGtkView * inf_text_gtk_view_new (InfIo *io
,GtkTextView *view
,InfUserTable *user_table
);
Creates a new InfTextGtkView for view
. This draws remote user's cursors
and selections into the text view.
[constructor]
io |
A InfIo. |
|
view |
A GtkTextView. |
|
user_table |
The InfUserTable for the text session displayed in |
GtkTextView *
inf_text_gtk_view_get_text_view (InfTextGtkView *view
);
Returns the underlying GtkTextView.
InfUserTable *
inf_text_gtk_view_get_user_table (InfTextGtkView *view
);
Returns the InfUserTable containing the users of the session the InfTextGtkView's GtkTextView is displaying.
void inf_text_gtk_view_set_active_user (InfTextGtkView *view
,InfTextUser *user
);
Sets the user for which perspective to draw the view. The selection and cursor position is not drawn for this user since it is assumed that the view's buffer cursor position and selection match the active user ones (which is automatically the case if the buffer is managed by a InfTextGtkBuffer).
InfTextUser *
inf_text_gtk_view_get_active_user (InfTextGtkView *view
);
Returns the active user of view
. See inf_text_gtk_view_set_active_user()
.
void inf_text_gtk_view_set_show_remote_cursors (InfTextGtkView *view
,gboolean show
);
If show
is TRUE
then view
draws a cursor for each non-local user in
INF_USER_ACTIVE
status in that user's color into its underlying
GtkTextView. If it is FALSE
then remote cursors are not drawn.
void inf_text_gtk_view_set_show_remote_selections (InfTextGtkView *view
,gboolean show
);
If show
is TRUE
then view
draws the selection ranges for each non-local
user in INF_USER_ACTIVE
status. The selection range is drawn shaded in
that user's color on top of the author color which indicates who wrote the
selected text. If more than one user has a given piece of text selected
then an alternating stripe pattern with each of the user's colors is drawn.
If show
is FALSE
then selection ranges of remote users are not drawn.
void inf_text_gtk_view_set_show_remote_current_lines (InfTextGtkView *view
,gboolean show
);
If show
is TRUE
then all lines in which the cursor of a non-local user
in INF_USER_ACTIVE
status is is highlighted with that user's color, similar
to GtkSourceView's "highlight current line" functionality. If it is FALSE
then the current line of non-local users is not highlighted.
struct InfTextGtkView;
InfTextGtkView is an opaque data type. You should only access it via the public API functions.
“active-user”
property“active-user” InfTextUser *
The user for which to show the view.
Owner: InfTextGtkView
Flags: Read / Write
“io”
property“io” InfIo *
The IO object to schedule timeouts.
Owner: InfTextGtkView
Flags: Read / Write / Construct Only
“show-remote-current-lines”
property “show-remote-current-lines” gboolean
Whether to highlight the line in which the cursor of non-local users is.
Owner: InfTextGtkView
Flags: Read / Write
Default value: TRUE
“show-remote-cursors”
property “show-remote-cursors” gboolean
Whether to show cursors of non-local users.
Owner: InfTextGtkView
Flags: Read / Write
Default value: TRUE
“show-remote-selections”
property “show-remote-selections” gboolean
Whether to highlight text selected by non-local users.
Owner: InfTextGtkView
Flags: Read / Write
Default value: TRUE
“user-table”
property“user-table” InfUserTable *
The user table containing the users of the session shown in the view.
Owner: InfTextGtkView
Flags: Read / Write / Construct Only