mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 13:11:13 +00:00
Add a has-selection property
This commit is contained in:
parent
748c99f0ca
commit
b863d24089
@ -1,3 +1,10 @@
|
||||
2005-10-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk.symbols:
|
||||
* gtk/gtktextbuffer.h:
|
||||
* gtk/gtktextbuffer.c: Add a readonly has-selection property
|
||||
with a getter. (#318161, Paolo Borelli)
|
||||
|
||||
2005-10-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* README.in: Start collecting release notes for 2.10.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2005-10-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk.symbols:
|
||||
* gtk/gtktextbuffer.h:
|
||||
* gtk/gtktextbuffer.c: Add a readonly has-selection property
|
||||
with a getter. (#318161, Paolo Borelli)
|
||||
|
||||
2005-10-05 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* README.in: Start collecting release notes for 2.10.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2005-10-06 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* gtk/gtk-sections.txt: Add gtk_text_buffer_get_has_selection().
|
||||
|
||||
2005-10-05 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
* gtk/tmpl/gtkfilechooser.sgml: Document the "quick-bookmark"
|
||||
|
@ -3079,6 +3079,7 @@ gtk_text_buffer_delete_mark_by_name
|
||||
gtk_text_buffer_get_mark
|
||||
gtk_text_buffer_get_insert
|
||||
gtk_text_buffer_get_selection_bound
|
||||
gtk_text_buffer_get_has_selection
|
||||
gtk_text_buffer_place_cursor
|
||||
gtk_text_buffer_select_range
|
||||
gtk_text_buffer_apply_tag
|
||||
|
@ -2873,6 +2873,7 @@ gtk_text_buffer_end_user_action
|
||||
gtk_text_buffer_get_bounds
|
||||
gtk_text_buffer_get_char_count
|
||||
gtk_text_buffer_get_end_iter
|
||||
gtk_text_buffer_get_has_selection
|
||||
gtk_text_buffer_get_insert
|
||||
gtk_text_buffer_get_iter_at_child_anchor
|
||||
gtk_text_buffer_get_iter_at_line
|
||||
|
@ -41,6 +41,7 @@
|
||||
#include "gtkintl.h"
|
||||
#include "gtkalias.h"
|
||||
|
||||
|
||||
typedef struct _ClipboardRequest ClipboardRequest;
|
||||
|
||||
struct _ClipboardRequest
|
||||
@ -75,7 +76,8 @@ enum {
|
||||
PROP_TAG_TABLE,
|
||||
|
||||
/* Normal */
|
||||
PROP_TEXT
|
||||
PROP_TEXT,
|
||||
PROP_HAS_SELECTION
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -113,6 +115,9 @@ static void gtk_text_buffer_real_remove_tag (GtkTextBuffer *buffe
|
||||
const GtkTextIter *start_char,
|
||||
const GtkTextIter *end_char);
|
||||
static void gtk_text_buffer_real_changed (GtkTextBuffer *buffer);
|
||||
static void gtk_text_buffer_real_mark_set (GtkTextBuffer *buffer,
|
||||
const GtkTextIter *iter,
|
||||
GtkTextMark *mark);
|
||||
|
||||
static GtkTextBTree* get_btree (GtkTextBuffer *buffer);
|
||||
static void free_log_attr_cache (GtkTextLogAttrCache *cache);
|
||||
@ -180,6 +185,7 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass)
|
||||
klass->apply_tag = gtk_text_buffer_real_apply_tag;
|
||||
klass->remove_tag = gtk_text_buffer_real_remove_tag;
|
||||
klass->changed = gtk_text_buffer_real_changed;
|
||||
klass->mark_set = gtk_text_buffer_real_mark_set;
|
||||
|
||||
/* Construct */
|
||||
g_object_class_install_property (object_class,
|
||||
@ -208,6 +214,21 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass)
|
||||
"",
|
||||
GTK_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
* GtkTextBuffer:has-selection:
|
||||
*
|
||||
* Whether the buffer has some text currently selected.
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_HAS_SELECTION,
|
||||
g_param_spec_boolean ("has-selection",
|
||||
P_("Has selection"),
|
||||
P_("Whether the buffer has some text currently selected"),
|
||||
FALSE,
|
||||
G_PARAM_READABLE));
|
||||
|
||||
signals[INSERT_TEXT] =
|
||||
g_signal_new (I_("insert_text"),
|
||||
G_OBJECT_CLASS_TYPE (object_class),
|
||||
@ -446,6 +467,10 @@ gtk_text_buffer_get_property (GObject *object,
|
||||
break;
|
||||
}
|
||||
|
||||
case PROP_HAS_SELECTION:
|
||||
g_value_set_boolean (value, text_buffer->has_selection);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -2196,6 +2221,28 @@ gtk_text_buffer_real_changed (GtkTextBuffer *buffer)
|
||||
gtk_text_buffer_set_modified (buffer, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_buffer_real_mark_set (GtkTextBuffer *buffer,
|
||||
const GtkTextIter *iter,
|
||||
GtkTextMark *mark)
|
||||
{
|
||||
if (mark == gtk_text_buffer_get_insert (buffer) ||
|
||||
mark == gtk_text_buffer_get_selection_bound (buffer))
|
||||
{
|
||||
gboolean has_selection;
|
||||
|
||||
has_selection = gtk_text_buffer_get_selection_bounds (buffer,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
if (has_selection != buffer->has_selection)
|
||||
{
|
||||
buffer->has_selection = has_selection;
|
||||
g_object_notify (G_OBJECT (buffer), "has-selection");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_buffer_emit_tag (GtkTextBuffer *buffer,
|
||||
GtkTextTag *tag,
|
||||
@ -2698,6 +2745,24 @@ gtk_text_buffer_set_modified (GtkTextBuffer *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_text_buffer_get_has_selection:
|
||||
* @buffer: a #GtkTextBuffer
|
||||
*
|
||||
* Indicates whether the buffer has some text currently selected.
|
||||
*
|
||||
* Return value: %TRUE if the there is text selected
|
||||
*
|
||||
* Since: 2.10
|
||||
**/
|
||||
gboolean
|
||||
gtk_text_buffer_get_has_selection (GtkTextBuffer *buffer)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_TEXT_BUFFER (buffer), FALSE);
|
||||
|
||||
return buffer->has_selection;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Assorted other stuff
|
||||
|
@ -70,6 +70,8 @@ struct _GtkTextBuffer
|
||||
|
||||
/* Whether the buffer has been modified since last save */
|
||||
guint modified : 1;
|
||||
|
||||
guint has_selection : 1;
|
||||
};
|
||||
|
||||
struct _GtkTextBufferClass
|
||||
@ -337,6 +339,8 @@ gboolean gtk_text_buffer_get_modified (GtkTextBuffer *buffer);
|
||||
void gtk_text_buffer_set_modified (GtkTextBuffer *buffer,
|
||||
gboolean setting);
|
||||
|
||||
gboolean gtk_text_buffer_get_has_selection (GtkTextBuffer *buffer);
|
||||
|
||||
void gtk_text_buffer_add_selection_clipboard (GtkTextBuffer *buffer,
|
||||
GtkClipboard *clipboard);
|
||||
void gtk_text_buffer_remove_selection_clipboard (GtkTextBuffer *buffer,
|
||||
|
Loading…
Reference in New Issue
Block a user