[Home] [Downloads] [Search] [Help/forum]


Register forum user name Search FAQ

Gammon Forum

[Folder]  Entire forum
-> [Folder]  MUSHclient
. -> [Folder]  Miniwindows
. . -> [Subject]  TextRectangle / Wrapping text.

TextRectangle / Wrapping text.

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page


Pages: 1  2 

Posted by Nick Gammon   Australia  (22,975 posts)  [Biography] bio   Forum Administrator
Date Reply #15 on Fri 20 Aug 2010 09:34 PM (UTC)

Amended on Fri 20 Aug 2010 09:36 PM (UTC) by Nick Gammon

Message
Fiendish said:

I think that's difficult for a number of reasons. The first one I can think of is that you can't easily select arbitrary text in a miniwindow, because miniwindows don't really have text. I suppose it'd be an interesting exercise to add that to the chat capture plugin, though. Hmm...
Selecting text that runs off the screen would be tricky...


WoW has chat windows which are effectively little miniwindows (with a semi-transparent background). There are pretty hopeless, I usually can't even select text at all, let alone part of a line, and they only seem to save about the last 100 lines of chat.

Still, they have 10+ million subscribers, so maybe that isn't a big issue, huh?

Your current chat windows resize nicely, with the amount of stuff I have in them. And with the resize window and move hotspot functionality you can make it faster and the coding simpler.

You could add a RH-click to copy the line under the cursor functionality, that could be nice. And you could add timestamps if you RH-click, or hover over the line, etc.

[EDIT] I take that back, they are already time-stamped.

I honestly think you are trying to solve the wrong problem. Your current chat windows are the direction I would be heading - multiple windows even (eg. clan, newbie, general, auction), and then let the player move them around and keep an eye on them.

Even if your suggestions were implemented there is still only one output window in MUSHclient - that doesn't give you multiple chat windows.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Lasher   USA  (22 posts)  [Biography] bio
Date Reply #16 on Fri 20 Aug 2010 10:12 PM (UTC)

Amended on Fri 20 Aug 2010 10:13 PM (UTC) by Lasher

Message
The original question was specifically related to the "textrectangle" feature. It seems if you resize the font in there and need to resize the window (as a user), you are pretty much all out of luck. Existing text in the window buffer not resizing is no problem, it's a temporary issue. The window resize issue is more of a problem.

Where I'm coming from is providing a downloadable version of the client preconfigured. I have to set the textrectangle value to *something* and the first thing many users are going to want to do is increase or decrease the size of the font in that window to suit their preferences. Sure as a user I'm rarely going to resize the text in that window, but the one time I do (at the beginning) it needs to work.

If it were a normal mini-window I can add increase/decrease font buttons and a drag-handler for window size. If it were a full world window it's a non-issue.

The textrectangle window appears stuck in limbo with no real way for a user to resize it, or to add widgets to it.

I can work around it with stuff to detect the font size and act accordingly of course, or even put a 'config' window over the top of it. There are multiple possible workarounds and you guys probably have better suggestions than these .. the real point of the note was to see if I need to. It's also quite possible there are options for things you can do with 'textrectangle' areas I just haven't discovered yet...
[Go to top] top

Posted by Twisol   USA  (2,257 posts)  [Biography] bio
Date Reply #17 on Fri 20 Aug 2010 10:19 PM (UTC)
Message
Lasher said:
The textrectangle window appears stuck in limbo with no real way for a user to resize it, or to add widgets to it.

You could try placing a small, transparent miniwindow just over the bottom-right corner, and make it draggable and stuff. When it's clicked (and held), draw two "guide" lines (with a new miniwindow) to show where the borders will be. When it's released, call TextRectangle() with the new values. (You can do this for other corners too, of course.)

To make it obvious that the corner is draggable, you can draw an image on the dragger, something like the corner graphic Chrome puts on text box form elements.

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
[Go to top] top

Posted by Fiendish   USA  (2,514 posts)  [Biography] bio   Global Moderator
Date Reply #18 on Fri 20 Aug 2010 11:12 PM (UTC)

Amended on Fri 20 Aug 2010 11:13 PM (UTC) by Fiendish

Message
Nick et al.,
I've been addressing Lasher's request for "Auto-wrap to window size" to work on a textrectangle with suggestions of how it might be made to work and reasons why one might want it, presupposing that the desired functionality is for resizing the textrectangle to wrap old lines as well as newly received lines. This could of course have been a foolish assumption on my part. If the desired functionality, as Lasher hints at in his last post, is to only set the wrap point for newly incoming lines based on the width of the textarea, then the problem is very different and much simpler, since the obvious solution is to make the statement "With output redirected to a TextRectangle this setting appears to be ignored" not be true. Twisol's latest suggestion is also more to the point on resizing itself. But I don't think that resizing is always the right answer. The user may want a certain font size and a certain textrectangle size.

If that answers all of your concerns, stop reading this post now. Now on with more blather. :)

Worstje said:

I don't want resizing to reflow my stuff. The speed bump would make it a nightmare, since even when ignoring me 100,000 line buffers, I often size the window smaller temporarily because I don't need the full width I usually do (with mw's being hidden at that point.)

I'm not sure I understand how the scenario you present is possible in the context of textrectangle.

Nick Gammon said:
To address the quoted point first, certainly a new routine could be added (or GetLineInfo modified) to supply extra meta-data. In fact the timestamp of the line is already there.

Nick, to address half of your question of what part you would play in any of this. This is probably it, if anything. All the rest would be handled by someone else who cares to use the functionality in a particular way. To address the second half, see the opening paragraph of this note.

Quote:
There would be memory considerations. You suggested doing what can currently be done in Lua, and then "a small routine to copy and paste the history buffer". Well effectively you would need two copies of every line, and someone who is close to the limit of memory might push it into a massive amount of paging to accomplish that.

That's true of most new software functionality. I'm not really concerned with marginally increased memory requirements.

Quote:
For example, on Aardwolf: ... Ah, it looks the same. So why bother?

Set your width to 100 characters. Watch a few channels. Then set your width to 85 characters. It doesn't look the same. Or are you thinking that with chat capture the way it is, we never need to deal with long lines in the main output area? I don't think I can agree with that premise.

Twisol said:
Windows sends fluid resize events, so you'd actually have to reflow multiple times while the user is still dragging the window borders.

I already encountered this issue with my chat capture plugin. The short answer is "no you don't". The slightly longer answer is, "No you don't. And besides, we're not even talking about Windows resize events. We're talking about a textrectangle. So you're doubly in error."

Nick Gammon said:
You could add a RH-click to copy the line under the cursor functionality, that could be nice. And you could add timestamps if you RH-click, or hover over the line, etc.

[EDIT] I take that back, they are already time-stamped.

It also already lets you click to copy messages. :D
What it doesn't let you do is select an arbitrary block of text. I hope to add that eventually.


https://github.com/fiendish/aardwolfclientpackage
[Go to top] top

Posted by Nick Gammon   Australia  (22,975 posts)  [Biography] bio   Forum Administrator
Date Reply #19 on Fri 20 Aug 2010 11:13 PM (UTC)
Message
Lasher said:

The original question was specifically related to the "textrectangle" feature. It seems if you resize the font in there and need to resize the window (as a user), you are pretty much all out of luck. Existing text in the window buffer not resizing is no problem, it's a temporary issue. The window resize issue is more of a problem.


Ah well this is totally different. And indeed a small "resize" box in the bottom RH corner of the text rectangle might do what Twisol suggested, let the player generate calls to TextRectangle on the fly.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


52,696 views.

This is page 2, subject is 2 pages long:  [Previous page]  1  2 

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page

Go to topic:           Search the forum


[Go to top] top

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.

[Home]


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at HostDash]