summaryrefslogtreecommitdiff
path: root/clients
diff options
context:
space:
mode:
authorJan Arne Petersen <jpetersen@openismus.com>2013-01-16 21:26:45 +0100
committerKristian Høgsberg <krh@bitplanet.net>2013-02-15 17:00:29 -0500
commit0558a93eee9936eadd242c1db6ab29cc27700f55 (patch)
treec6ef96dbcfb95ee19066de0807093ff70bc413e1 /clients
parente475f293304c5afb78372f536e21b0dd94fa7ddf (diff)
editor: Add content type example
Set the content type purpose to numeric of the second entry. Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Diffstat (limited to 'clients')
-rw-r--r--clients/editor.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/clients/editor.c b/clients/editor.c
index ef1dd283..90ee4cd2 100644
--- a/clients/editor.c
+++ b/clients/editor.c
@@ -59,6 +59,7 @@ struct text_entry {
xkb_mod_mask_t shift_mask;
} keysym;
uint32_t serial;
+ uint32_t content_purpose;
};
struct editor {
@@ -550,6 +551,19 @@ text_entry_update_layout(struct text_entry *entry)
}
static void
+text_entry_update(struct text_entry *entry)
+{
+ text_model_set_content_type(entry->model,
+ TEXT_MODEL_CONTENT_HINT_NONE,
+ entry->content_purpose);
+
+ text_model_set_surrounding_text(entry->model,
+ entry->text,
+ entry->cursor,
+ entry->anchor);
+}
+
+static void
text_entry_insert_at_cursor(struct text_entry *entry, const char *text)
{
char *new_text = malloc(strlen(entry->text) + strlen(text) + 1);
@@ -568,10 +582,7 @@ text_entry_insert_at_cursor(struct text_entry *entry, const char *text)
widget_schedule_redraw(entry->widget);
- text_model_set_surrounding_text(entry->model,
- entry->text,
- entry->cursor,
- entry->anchor);
+ text_entry_update(entry);
}
static void
@@ -648,10 +659,7 @@ text_entry_set_cursor_position(struct text_entry *entry,
widget_schedule_redraw(entry->widget);
- text_model_set_surrounding_text(entry->model,
- entry->text,
- entry->cursor,
- entry->anchor);
+ text_entry_update(entry);
}
static void
@@ -669,10 +677,7 @@ text_entry_set_anchor_position(struct text_entry *entry,
widget_schedule_redraw(entry->widget);
- text_model_set_surrounding_text(entry->model,
- entry->text,
- entry->cursor,
- entry->anchor);
+ text_entry_update(entry);
}
static void
@@ -691,10 +696,7 @@ text_entry_delete_text(struct text_entry *entry,
widget_schedule_redraw(entry->widget);
- text_model_set_surrounding_text(entry->model,
- entry->text,
- entry->cursor,
- entry->anchor);
+ text_entry_update(entry);
}
static void
@@ -986,7 +988,8 @@ main(int argc, char *argv[])
editor.widget = frame_create(editor.window, &editor);
editor.entry = text_entry_create(&editor, "Entry");
- editor.editor = text_entry_create(&editor, "Editor");
+ editor.editor = text_entry_create(&editor, "Numeric");
+ editor.editor->content_purpose = TEXT_MODEL_CONTENT_PURPOSE_NUMBER;
window_set_title(editor.window, "Text Editor");
window_set_key_handler(editor.window, key_handler);