Re: ScrolledWindow, DrawingArea, and setting step-increment



On Wed, Nov 13, 2013 at 4:44 AM, Gabriele Greco <gabriele greco darts it> wrote:
I suggest you to use GtkTextView for your text output, thank to GtkTextTag
it's flexible enough to do everything a mud client needs, also blinking
text, it scrolls at line boundaries and let you keep thousands of lines of
textbuffer without slowdowns.

Hmm. I used to have something using that, in one of the early tests,
but there was either a critical performance problem, or something I
couldn't do with it. Can that handle mark-and-copy, clickable URLs,
and so on? Or possibly it's that you say "thousands" there; to me,
thousands of lines is just barely getting started. My current session
in Gypsum has barely started and I already have 50K lines; my RosMud
session currently has 300K lines of scrollback; and I've noted as an
unsolvable RosMud bug that it's unacceptably slow adding the
16,777,216th line to the buffer (because it does a naive
double-and-move-pointers operation). Unfortunately I don't have (or
can't find) my notes on exactly what was wrong there, but there were
some issues on Windows that I had to warp my code around. (Gypsum is
slated as a replacement for RosMud, a Windows client, so it has to be
at least plausibly equivalent in performance and functionality. Being
awesome on Linux and abysmal on Windows isn't good enough.)

I'm currently looking at whether it's worth bypassing the
ScrolledWindow and simply putting an Hbox with the DrawingArea and a
Scrollbar, and managing the scroll position myself. That might be
easier, I don't know; is there a way to blit a DrawingArea's contents?
I can't find anything. (It'd make scrolling a lot quicker and smoother
if I could say "move this bit here".)

ChrisA


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]