[Gd-chatter] r11400 - branches/opendylan-melange/gtk-duim
hannes at gwydiondylan.org
hannes at gwydiondylan.org
Mon Jun 11 20:26:35 CEST 2007
Author: hannes
Date: Mon Jun 11 20:26:33 2007
New Revision: 11400
Modified:
branches/opendylan-melange/gtk-duim/gtk-events.dylan
branches/opendylan-melange/gtk-duim/gtk-gadgets.dylan
Log:
Job: fd
*implement <gtk-text-editor> with GtkTextView
*gtk-text is deprecated and GtkTextView is no
GtkEditable, so superclass is gtk-gadget-mixin
Modified: branches/opendylan-melange/gtk-duim/gtk-events.dylan
==============================================================================
--- branches/opendylan-melange/gtk-duim/gtk-events.dylan (original)
+++ branches/opendylan-melange/gtk-duim/gtk-events.dylan Mon Jun 11 20:26:33 2007
@@ -7,11 +7,6 @@
Dual-license: GNU Lesser General Public License
Warranty: Distributed WITHOUT WARRANTY OF ANY KIND
-/// GTK signals
-
-
-
-
/// Install event handlers
define sealed method generate-trigger-event
Modified: branches/opendylan-melange/gtk-duim/gtk-gadgets.dylan
==============================================================================
--- branches/opendylan-melange/gtk-duim/gtk-gadgets.dylan (original)
+++ branches/opendylan-melange/gtk-duim/gtk-gadgets.dylan Mon Jun 11 20:26:33 2007
@@ -877,7 +877,7 @@
/// Text editors
define sealed class <gtk-text-editor>
- (<gtk-text-gadget-mixin>,
+ (<gtk-gadget-mixin>,
<text-editor>,
<leaf-pane>,
<sealed-constructor-mixin>)
@@ -897,16 +897,19 @@
let word-wrap? = text-field-word-wrap?(gadget);
let text = gadget-text-buffer(gadget);
with-gdk-lock
- let widget = gtk-text-new(null-pointer(<GtkAdjustment>),
- null-pointer(<GtkAdjustment>));
+ let widget = gtk-text-view-new();
assert(~null-pointer?(widget), "gtk-text-new failed");
// Note that this is happening before install-event-handlers, so don't
// need to disable events.
when (lines | columns)
ignoring("lines:/columns:")
end;
- gtk-text-set-word-wrap(widget, if (word-wrap?) $true else $false end);
- set-text-widget-text(widget, text);
+ if (word-wrap?)
+ widget. at wrap-mode := $GTK-WRAP-WORD-CHAR;
+ end;
+ let buffer = gtk-text-view-get-buffer(widget);
+ format-out("Setting text to %=\n", text);
+ gtk-text-buffer-set-text(buffer, text, -1);
make(<gadget-mirror>,
widget: widget,
sheet: gadget)
@@ -919,37 +922,15 @@
let widget = gadget-widget(gadget);
when (widget)
with-gdk-lock
+ let buffer = gtk-text-view-get-buffer(widget);
let new-text = gadget-text-buffer(gadget);
- let old-text = gtk-editable-get-chars(widget, 0, -1);
- let update? = old-text ~= new-text;
- g-free(old-text);
- when (update?)
- block ()
- gtk-text-freeze(widget);
- with-disabled-event-handler (mirror, #"changed")
- set-text-widget-text(widget, new-text);
- end;
- cleanup
- gtk-text-thaw(widget);
- end
+ with-disabled-event-handler (mirror, #"changed")
+ gtk-text-buffer-set-text(buffer, new-text, -1);
end;
end
end;
end method update-gadget-text;
-define method set-text-widget-text (widget, text :: <string>)
- with-c-string (c-text = text)
- with-stack-structure (position :: <c-int*>)
- with-gdk-lock
- gtk-editable-delete-text(widget, 0, -1);
- pointer-value(position) := 0;
- gtk-editable-insert-text(widget, c-text, text.size,
- pointer-cast(<gint*>, position));
- end;
- end
- end;
-end set-text-widget-text;
-
/// Scroll bars
@@ -1139,8 +1120,6 @@
widget. at headers-visible := #t;
else
widget. at headers-visible := #f;
- //---*** How should we decide this?
-// gtk-clist-set-column-width(widget, 0, 500)
end;
end;
update-list-control-items(gadget, mirror)
More information about the chatter
mailing list