Re: Moving windows in Maemo

2007-04-18 Thread Kalle Vahlman

2007/4/18, Eero Tamminen <[EMAIL PROTECTED]>:

Hi,

ext Sean Luke wrote:
> No, that's a *global* change, and a major, brickable, modification which
> is not acceptable for me to make on a person's computer for them just to
> use my application.  I should be able to enable a *specific* window to
> be resizable/movable.

Sorry, those are the only options you have currently available.
(and based on Intel's recent powerpoints linked to this list
they might be adopting Hildon too. :-))


Though nothing indicated they'd adopt the policy decision for matchbox...


>>> Second, I believe that Nokia should set many of its dialog boxes as
>>> resizable, and *all* of its dialog boxes as movable.
>>
>> I'm pretty sure this is not going to happen (dialogs in phones
>> are not movable either + their UI is also very modal).
>
> Does Nokia really perceive the N800 UI in phone terms?

I don't know.  I don't. :-)


> If so, Apple is going to eat your lunch.

That would be oh, so naughty...


I thought it was already True(tm) that Apple will nail it with iPhone
and everything else would be crap after that?

;)

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
>>> - set a specific dialog as closeable or minaturizable
>>
>> This might be something that you could control from Matchbox theme
>> file, see its documentation at:
>>   http://matchbox-project.org/
>>
>> Then you could create a theme that does that and install it.
> 
> No, that's a *global* change, and a major, brickable, modification which
> is not acceptable for me to make on a person's computer for them just to
> use my application.  I should be able to enable a *specific* window to
> be resizable/movable.

Sorry, those are the only options you have currently available.
(and based on Intel's recent powerpoints linked to this list
they might be adopting Hildon too. :-))


>>> Second, I believe that Nokia should set many of its dialog boxes as
>>> resizable, and *all* of its dialog boxes as movable.
>>
>> I'm pretty sure this is not going to happen (dialogs in phones
>> are not movable either + their UI is also very modal).
> 
> Does Nokia really perceive the N800 UI in phone terms?

I don't know.  I don't. :-)


> If so, Apple is going to eat your lunch.

That would be oh, so naughty...


>>> Third, I believe Nokia should place notifications somewhere where they
>>> don't cover widgets (the right half of the menu bar is the obvious
>>> place),
>>
>> Many of the banners come from dimmed menu items, so then the banners
>> would cover the item you just tapped (they are quite high), which would
>> be even more annoying I think.
> 
> You don't need to actually have a *window*.  Just change part of the
> text of the menu bar (and maybe its color) temporarily.

Titlebar is owned by the window manager and AFAIK there's currently
no way to do this (see the ewmh spec link).  You could discuss this
feature on the Matchbox mailing list (or freedesktop specs list).


- Eero
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Sean Luke

On Apr 18, 2007, at 10:58 AM, Eero Tamminen wrote:


- set a specific dialog as closeable or minaturizable


This might be something that you could control from Matchbox theme
file, see its documentation at:
  http://matchbox-project.org/

Then you could create a theme that does that and install it.


No, that's a *global* change, and a major, brickable, modification  
which is not acceptable for me to make on a person's computer for  
them just to use my application.  I should be able to enable a  
*specific* window to be resizable/movable.




Second, I believe that Nokia should set many of its dialog boxes as
resizable, and *all* of its dialog boxes as movable.


I'm pretty sure this is not going to happen (dialogs in phones
are not movable either + their UI is also very modal).


Does Nokia really perceive the N800 UI in phone terms?  If so, Apple  
is going to eat your lunch.



Third, I believe Nokia should place notifications somewhere where  
they

don't cover widgets (the right half of the menu bar is the obvious
place),


Many of the banners come from dimmed menu items, so then the banners
would cover the item you just tapped (they are quite high), which  
would

be even more annoying I think.


You don't need to actually have a *window*.  Just change part of the  
text of the menu bar (and maybe its color) temporarily.


Sean
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
[...]

Thanks for the information!

It's better that some developer more familiar with Gtk answers
these, I'm not completely sure on all of this (I've done very
little with Gtk).


>>> But to get back on track: this is essentially orthogonal to the issue of
>>> giving developers the *option* of moving and resizing dialogs.
>>
>> Developers already have that.  They can (from code) set dialog to
>> any size and position at any time they want to.
> 
> Is there a standard API for developers turn on a switch in their
> application (not a global switch for all apps) that says "let the user
> resize this particular dialog from a resize box" or "let the user drag
> dialogs by their title bars", short of making a global modification to
> the window manager?  That's what spawned this thread.

No.


>>> So: why are we restricted to
>>> being unable to make dialogs which can be dragged and resized?  Why
>>> can't the developer be given the option to handle these corner cases
>>> himself?
>>
>> You're asking for an option to set that dialog should be resizable
>> and movable?  (that's different from what you asked earlier)
> 
> Hmmm, I'm pretty sure that's what I asked.

There are now three different things being discussed:
1. Being able to set dialog size & position from code
   -> already possible
2. Original issue: all dialogs in the device being resizable and
   movable by the user
   -> Already possible, but only by setting the corresponding DIALOGMODE
  in /etc/osso-af-init/matchbox.defs (this is given as command line
  option to matchbox window manager)
   -> This UI policy is not going to be changed as it's against Maemo
  UI policy and need for that just indicates either bad application
  UI design or implementation (ie. bug)
  - If UI policy is not at Maemo site, IMHO it should...
3. Being able to set just specific dialog to be user movable & resizable
   -> Not possible


But let me be more specific
> to summarize my requests in the discussion so far.
> 
> First, I'd like the option, as a developer, to:
> 
> - set a specific dialog as movable
> - set a specific dialog as resizable
> - set a specific dialog as non-modal

This can be already done.

> - set a specific dialog as closeable or minaturizable

This might be something that you could control from Matchbox theme
file, see its documentation at:
  http://matchbox-project.org/

Then you could create a theme that does that and install it.


> Second, I believe that Nokia should set many of its dialog boxes as
> resizable, and *all* of its dialog boxes as movable.

I'm pretty sure this is not going to happen (dialogs in phones
are not movable either + their UI is also very modal).


> Third, I believe Nokia should place notifications somewhere where they
> don't cover widgets (the right half of the menu bar is the obvious
> place),

Many of the banners come from dimmed menu items, so then the banners
would cover the item you just tapped (they are quite high), which would
be even more annoying I think.


> and at the very least, make notifications dismissable by
> clicking on them.

This has already a bug.

> No notifications should be permitted to be on-screen
> more than a very short time (the present 3 second length is irritatingly
> way too long -- perhaps this could be a control panel setting?).

It's very little detail to be put in control panel, but file it to
Bugzilla.  Maybe it could be just a Gconf setting, then somebody else
could provide the applet for setting that?  (I'm not deciding on these,
but you could get the hildon sources and provide a patch for this
in bugzilla, that could help)

IMHO above feature is more useful though.


> And violating notifications, such as email's "deleting message"
> notification, which keep the notification up for minutes at a time,
> should be eliminated.
> 
> Fourth, it'd be nice if Nokia significantly reduced the height of the
> Dialog's title bar given the small size of the screen.

Bug?


- Eero

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Sean Luke

On Apr 18, 2007, at 5:20 AM, Eero Tamminen wrote:


ext Sean Luke wrote:


What I gather here is that GTK widgets can't specify maximum size  
and,


They can.


They can?  All I see is set_size_request(), which sets minimum  
sizes.  How do you set the maximum size?  (still no "preferred" size  
though.  :-( )




more importantly, they can't specify a "preferred" (as in Java) or
"natural" (as Mathias puts it) size.


How this works in Java?


In Java every widget can tell you its minimum, maximum, and preferred  
size.  A container will do everything it can to keep its children  
from going smaller than their minimum size.  Likewise widgets can  
refuse to be made larger than a maximum size -- stretching beyond it  
will just add more padding.


Okay, good enough.  A widget's preferred size tells its container the  
size it'd like to be set to if at all possible.  Containers then will  
resize widgets such that everything gets its preferred size if  
possible, and the remainder is filled by widgets which have been  
positioned to stretch.  Thus in the dialog at http:// 
preview.tinyurl.com/ytzfsh  the top row is what GTK does and the  
bottom row is what Java typically does.


A container's own minimum, maximum, and preferred sizes are  
calculated on-the-fly from laying out its children accordingly.  And  
the outermost container (a window) can be set to its preferred size  
-- and thus set all of its subsidiary widgets to their preferred  
sizes -- through the pack() method.




Okay, fine.  But this isn't
because the problem is "hard".  It's because of a significant  
misfeature
in GTK.  If widgets were able to specify at least "natural" sizes,  
the

problem would essentially go away, would it not?


How widgets could specify a "preferred" size?  Their contents could
be anything.


Not true.  What you're mistaking here is thinking that YOU tell  
widgets what their preferred is.  While you can often do this, in  
fact Java widgets typically compute their preferred sizes on the fly  
and provide them to YOU (or actually to their container) when asked.  
Java widgets specify minimum/maximum/preferred sizes through methods  
you can call:


widget.getPreferredSize()
widget.getMaximumSize()
widget.getMinimumSize()

For Java's equivalent of a one-line GTK.label, or GTK.entry, or  
GTK.button with one-line text:


getMaximumSize() returns the largest size the widget will allow (for  
these, it's infinity in the X direction, and TEXT_HEIGHT in the Y  
direction)


getMinimumSize() returns the minimum size possible ( [0,TEXT_HEIGHT]  
say, or maybe the size necessary to display "..." ).


getPreferredSize() returns the minimum size necessary to display  
_all_ of its text:  [text's string width, TEXT_HEIGHT]


Now what happens if it's a multi-line label with word-wrap?  What  
you'd want are two additional functions, something like:


getPreferredWidthForThisHeight(height)
getPreferredHeightForThisWidth(width)

...which tell the container: "if you resize me to 100 pixels wide,  
then here's the height I'd need to display all my text".  Java  
doesn't have that, a weakness -- but that's okay for Java because it  
has no widgets with wrappable text which don't prefer to fill the  
whole space.  Java's labels and buttons are one-line or multi-line  
but with hard-returns.  Still, a far sight better than GTK's situation.



But to get back on track: this is essentially orthogonal to the  
issue of

giving developers the *option* of moving and resizing dialogs.


Developers already have that.  They can (from code) set dialog to
any size and position at any time they want to.


Is there a standard API for developers turn on a switch in their  
application (not a global switch for all apps) that says "let the  
user resize this particular dialog from a resize box" or "let the  
user drag dialogs by their title bars", short of making a global  
modification to the window manager?  That's what spawned this thread.



So: why are we restricted to
being unable to make dialogs which can be dragged and resized?  Why
can't the developer be given the option to handle these corner cases
himself?


You're asking for an option to set that dialog should be resizable
and movable?  (that's different from what you asked earlier)


Hmmm, I'm pretty sure that's what I asked.  But let me be more  
specific to summarize my requests in the discussion so far.


First, I'd like the option, as a developer, to:

- set a specific dialog as movable
- set a specific dialog as resizable
- set a specific dialog as non-modal
- set a specific dialog as closeable or minaturizable

Second, I believe that Nokia should set many of its dialog boxes as  
resizable, and *all* of its dialog boxes as movable.


Third, I believe Nokia should place notifications somewhere where  
they don't cover widgets (the right half of the menu bar is the  
obvious place), and at the very least, make notifications dismissable  
by clicking on them.  No notifications s

Re: Moving windows in Maemo

2007-04-18 Thread Tapani Pälli
ext Murray Cumming wrote:
> On Wed, 2007-04-18 at 12:20 +0300, Eero Tamminen wrote:
> [snip]
>   
>> You're asking for an option to set that dialog should be resizable
>> and movable?  (that's different from what you asked earlier)
>>
>> Btw. If you want to know more about the standard for application
>> and window manager communication, see:
>>   http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html
>> 
>
> Isn't this just an issue of the MatchBox window manager. It generally
> prefers to fullscreen windows and doesn't allow secondary windows to be
> moved or resized by the user, at least on Maemo. Obviously a user can
> move and resize windows on a regular GNOME desktop.
>
> That seems to be a fairly sane decision by the Maemo UI people in order
> to simplify the UI. It might not be to everyone's liking.
>   
Yes, this is what it is. It is possible to have movable and resizable
dialogs with Matchbox, we just don't want them.


// Tapani

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Murray Cumming
On Wed, 2007-04-18 at 12:20 +0300, Eero Tamminen wrote:
[snip]
> You're asking for an option to set that dialog should be resizable
> and movable?  (that's different from what you asked earlier)
> 
> Btw. If you want to know more about the standard for application
> and window manager communication, see:
>   http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html

Isn't this just an issue of the MatchBox window manager. It generally
prefers to fullscreen windows and doesn't allow secondary windows to be
moved or resized by the user, at least on Maemo. Obviously a user can
move and resize windows on a regular GNOME desktop.

That seems to be a fairly sane decision by the Maemo UI people in order
to simplify the UI. It might not be to everyone's liking.

-- 
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-18 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
>> The problem is not widgets telling what is their maximum size
>> (doesn't fit to available space) or minimum size (doesn't show enough
>> useful information to the user), but somehow things deciding
>> what is the the optimum size for them.  Programmer just hard-coding
>> the widget width in pixels is not really a solution.
>>
>> It's not an easy problem to solve.
> 
> So trying to understand what you're going after, I finally made my way
> here, following some transitivity in Murray's pointer:
> 
> http://live.gnome.org/MathiasHasselmann/NewLayoutManager
> 
> What I gather here is that GTK widgets can't specify maximum size and,

They can.


> more importantly, they can't specify a "preferred" (as in Java) or
> "natural" (as Mathias puts it) size.

How this works in Java?


> Okay, fine.  But this isn't
> because the problem is "hard".  It's because of a significant misfeature
> in GTK.  If widgets were able to specify at least "natural" sizes, the
> problem would essentially go away, would it not?

How widgets could specify a "preferred" size?  Their contents could
be anything.   The above link is about how widget *containers* can
better deduct what would be best size between the minimum and maximum
as:
- minimum is too small for strings that are set as ellipsizable (...)
- maximum can go out of screen


> But to get back on track: this is essentially orthogonal to the issue of
> giving developers the *option* of moving and resizing dialogs.

Developers already have that.  They can (from code) set dialog to
any size and position at any time they want to.


> Indeed
> the problem will show up in fixed-size dialogs as well: just have the
> user change the default system font size.

Yes, things will break because Gtk cannot yet handle well enough content
which is resizable, it will (usually) show such content as too small,
unless a fixed size is used...  So, some of the dialogs in the device
might have fixed sizes (which is a bad thing).

In ideal situation the Gtk containers could size things so that user
doesn't feel the need for resizing.


> So: why are we restricted to
> being unable to make dialogs which can be dragged and resized?  Why
> can't the developer be given the option to handle these corner cases
> himself?

You're asking for an option to set that dialog should be resizable
and movable?  (that's different from what you asked earlier)

Btw. If you want to know more about the standard for application
and window manager communication, see:
  http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html


- Eero

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-17 Thread Sean Luke

On Apr 16, 2007, at 12:06 PM, Eero Tamminen wrote:


The problem is not widgets telling what is their maximum size
(doesn't fit to available space) or minimum size (doesn't show enough
useful information to the user), but somehow things deciding
what is the the optimum size for them.  Programmer just hard-coding
the widget width in pixels is not really a solution.

It's not an easy problem to solve.


So trying to understand what you're going after, I finally made my  
way here, following some transitivity in Murray's pointer:


http://live.gnome.org/MathiasHasselmann/NewLayoutManager

What I gather here is that GTK widgets can't specify maximum size  
and, more importantly, they can't specify a "preferred" (as in Java)  
or "natural" (as Mathias puts it) size.  Okay, fine.  But this isn't  
because the problem is "hard".  It's because of a significant  
misfeature in GTK.  If widgets were able to specify at least  
"natural" sizes, the problem would essentially go away, would it not?


But to get back on track: this is essentially orthogonal to the issue  
of giving developers the *option* of moving and resizing dialogs.   
Indeed the problem will show up in fixed-size dialogs as well: just  
have the user change the default system font size.  So: why are we  
restricted to being unable to make dialogs which can be dragged and  
resized?  Why can't the developer be given the option to handle these  
corner cases himself?


Sean
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-17 Thread Murray Cumming
On Mon, 2007-04-16 at 19:06 +0300, Eero Tamminen wrote:
[snip]
> The problem is not widgets telling what is their maximum size
> (doesn't fit to available space) or minimum size (doesn't show enough
> useful information to the user), but somehow things deciding
> what is the the optimum size for them.  Programmer just hard-coding
> the widget width in pixels is not really a solution.
> 
> It's not an easy problem to solve.

By the way, the difficulty with getting an _optimum_ size for large
GtkLabels is known. And there is a 2007 Google summer of code project
about it:
http://code.google.com/soc/gnome/appinfo.html?csaid=5F12F4E8AE21EC05

(There are bugzilla links there)

VMWare have a "WrapLabel" workaround for this in their libview library,
though you might need to port the logic from C++ to C:
http://view.sourceforge.net/

-- 
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-16 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
>> This is just that string.  Before you know what space the string
>> can or should take you need to check the sizes for all the widgets
>> contents, take into account the expand etc. attributes in the co.
>> widget hierarchy etc.
> 
> I'm missing the problem here.  Isn't this being done in the typical
> top-down fashion?
> 
> 1. Set in stone the widget dimensions.
> 2. Compute and cut string lengths line by line
> 3. If the total height will be more than the widget, include a scroll
> bar if appropriate
> 3.5 If including a scroll bar, recompute and cut string lengths line by
> line
> 4. Paint
> 
> This is at most an O(n) operation, at least it is on previous GUIs I've
> used.  Is there a misfeature in GNOME which is messing things up here? 
> Is GNOME allowing string painting calculations to change the widget
> size?

The reason why ellipsizing is used is that the text doesn't
(potentially) fit to the available space, e.g. when it's localized.
However, the minimum size requested by ellipsizable text or some other
items which can have a non-fixed size is usually very small.  In the
case of ellipsizable text it is "...".

Now.  How does the container decide whether it should use the full
length for the string (which as a filename, URL etc can be hundreds
of chars long), or minimum size which for ellipsizable string probably
isn't what user wanted to see ("..." doesn't contain any useful
information) or something in between?   Especially if how much space
is available is calculated based on it's contents of which some
are these items which sizes are somewhat flexible regarding their
content?


> If so, this is very bad behavior indeed, particularly for a small
> device.  BTW, you can avoid 3.5 if you always include a scroll bar,
> blank or not.  That's what's standard on the Mac.

On small screen you might not have space for that.  Also, you would want
to avoid having items with scrollbars inside areas with scrollbars.
(another problem which one encounters more easily on smaller screens)


>> The device has a small screen, long strings might not fit into it.
>> What Mac OSX does e.g. when showing filenames or URLs that are, say 500
>> characters long?
> 
> It truncates them.
> 
> Here's a picture of various MacOS X text modes.  Note that in all cases,
> there are no ellipses.

These are not text labels, they are text edit widgets.

Think of for example a Browser menu listing *only* the pages you've
visited.  When page doesn't have a title, its URL is shown instead.
URLs can be very long (as admittedly can be some HTML page titles too).
However, (as code) you don't know which of the items are "too long".
All menu items are set as ellipsizable because any of them can be too
long, so the minumum menu width is "...".

The problem is not widgets telling what is their maximum size
(doesn't fit to available space) or minimum size (doesn't show enough
useful information to the user), but somehow things deciding
what is the the optimum size for them.  Programmer just hard-coding
the widget width in pixels is not really a solution.

It's not an easy problem to solve.


- Eero
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-16 Thread Kalle Vahlman

2007/4/16, Sean Luke <[EMAIL PROTECTED]>:

On Apr 16, 2007, at 8:26 AM, Eero Tamminen wrote:

> This is just that string.  Before you know what space the string
> can or should take you need to check the sizes for all the widgets
> contents, take into account the expand etc. attributes in the co.
> widget hierarchy etc.

I'm missing the problem here.  Isn't this being done in the typical
top-down fashion?

1. Set in stone the widget dimensions
2. Compute and cut string lengths line by line
3. If the total height will be more than the widget, include a scroll
bar if appropriate
3.5 If including a scroll bar, recompute and cut string lengths line
by line
4. Paint

This is at most an O(n) operation, at least it is on previous GUIs
I've used.  Is there a misfeature in GNOME which is messing things up
here?  Is GNOME allowing string painting calculations to change the
widget size?


You might want to read

 http://developer.gnome.org/doc/API/2.0/gtk/GtkContainer.html#id3616277

before continuing this discussion, since obviously GTK+ is using
somewhat different principles in widget sizes than whatever you are
used to.


> The device has a small screen, long strings might not fit into it.
> What Mac OSX does e.g. when showing filenames or URLs that are, say
> 500
> characters long?

It truncates them.

Here's a picture of various MacOS X text modes.  Note that in all
cases, there are no ellipses.

http://cs.gmu.edu/~sean/temp/wordwrap.png


There's similar text widget in GTK+ too:

http://www.ibm.com/developerworks/cn/linux/guitoolkit/gnome/gnome2/part1/textview.gif

That hardly relates to labels (or other kinds of visible data) though.

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-16 Thread Sean Luke

On Apr 16, 2007, at 8:26 AM, Eero Tamminen wrote:


This is just that string.  Before you know what space the string
can or should take you need to check the sizes for all the widgets
contents, take into account the expand etc. attributes in the co.
widget hierarchy etc.


I'm missing the problem here.  Isn't this being done in the typical  
top-down fashion?


1. Set in stone the widget dimensions.
2. Compute and cut string lengths line by line
3. If the total height will be more than the widget, include a scroll  
bar if appropriate
3.5 If including a scroll bar, recompute and cut string lengths line  
by line

4. Paint

This is at most an O(n) operation, at least it is on previous GUIs  
I've used.  Is there a misfeature in GNOME which is messing things up  
here?  Is GNOME allowing string painting calculations to change the  
widget size?  If so, this is very bad behavior indeed, particularly  
for a small device.  BTW, you can avoid 3.5 if you always include a  
scroll bar, blank or not.  That's what's standard on the Mac.




The device has a small screen, long strings might not fit into it.
What Mac OSX does e.g. when showing filenames or URLs that are, say  
500

characters long?


It truncates them.

Here's a picture of various MacOS X text modes.  Note that in all  
cases, there are no ellipses.


http://cs.gmu.edu/~sean/temp/wordwrap.png

Sean
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-16 Thread Kalle Vahlman

2007/4/14, Sean Luke <[EMAIL PROTECTED]>:

Can't say about Palms.  Newtons did not ellipsize: but generally
Newton windows were movable but did not have resize widgets (not that
there was a prohibition against it).  But more importantly, MacOS X
does not ellipsize, so at least in English it's not seen as all that
important.  If it's highly costly, why not dump it?


I don't get that "does not ellipsize" part. My wife's mac seems to
have ellipsizing strings in both Finder and iTunes. Though I didn't
find any label-like elements that would do that. Then again, most
windows didn't seem even resizeable so I guess that's one way of
tackling the problem...

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-16 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
>> I'm not talking about user resizes, but calculating the dialog sizes.
> 
> Why is this an issue?  It would seem to me that ellipsizing is O(1). 
> Size as you like, then if you can't fit everything, draw, then erase
> back N characters, or a word, and stick in the "...".

This is just that string.  Before you know what space the string
can or should take you need to check the sizes for all the widgets
contents, take into account the expand etc. attributes in the co.
widget hierarchy etc.


>> Did palms or Newtons ellipsize too long strings or were they only
>> available in English? :-)
> 
> Can't say about Palms.  Newtons did not ellipsize: but generally Newton
> windows were movable but did not have resize widgets (not that there was
> a prohibition against it).  But more importantly, MacOS X does not
> ellipsize, so at least in English it's not seen as all that important. 
> If it's highly costly, why not dump it?

The device has a small screen, long strings might not fit into it.
What Mac OSX does e.g. when showing filenames or URLs that are, say 500
characters long?


- Eero
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-14 Thread Sean Luke

On Apr 13, 2007, at 3:43 AM, Eero Tamminen wrote:


#2 of course might have to be modal depending on the operation.
But #1 NEVER has to be modal,


I don't understand.  Infoprints are never modal, they don't even
take focus.


No, you're right, they're never modal, at least from my current  
testing.  But they do interfere with operations, covering widgets  
(like the scroll-up button and thumb) and material on-screen, and  
causing a significant cognitive wait period, hesitating until they go  
away because you can't dismiss them.  If you'd like them hanging  
around that long they should be placed somewhere that has less  
effect: my top choice is the right 2/3 of the menu title bar.




Note that some of the dialogs have static sizes because Gtk doesn't
always handle automatic resizing well enough.  This is only a  
problem
with text ellipsizing though I think.  Gtk has only concepts of  
minimum

(for ellipsizable text="...") and full size of a widget, as getting
something reasonable in between would need a lot of iterating  
(slowdown)

for the widget sizes.


Why do your windows need to have live resizing?


I'm not talking about user resizes, but calculating the dialog sizes.


Why is this an issue?  It would seem to me that ellipsizing is O(1).   
Size as you like, then if you can't fit everything, draw, then erase  
back N characters, or a word, and stick in the "...".  I get the  
feeling that GTK's got some more coding ickiness here.  I've already  
found another example -- try putting two TextViews inside an HPaned,  
fill them with a lot of text, and then drag the HPaned. This should  
be smooth but it's freaks them out badly.  This kind of behavior is  
unacceptably slow for a modern GUI: it looks like someone's hacked in  
a bad algorithm out at RedHat.




Did palms or Newtons ellipsize too long strings or were they only
available in English? :-)


Can't say about Palms.  Newtons did not ellipsize: but generally  
Newton windows were movable but did not have resize widgets (not that  
there was a prohibition against it).  But more importantly, MacOS X  
does not ellipsize, so at least in English it's not seen as all that  
important.  If it's highly costly, why not dump it?


Sean
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-13 Thread Levi Bard

>> If infoprints could be dismissed by
>> simply clicking on them, you wouldn't have any problems.
>
> I second this suggestion.  No need for a close button, just make it go
> away when I tap it.

Good suggestion, I don't see any problems with that
(app is not managing the infoprints, they can disappear
whenever they want to, only progress banners are controlled
by the application)

Could you make a bug (enhancement request) about this
to Maemo Bugzilla?


https://maemo.org/bugzilla/show_bug.cgi?id=1212

--
It doesn't take a nukular scientist to pronounce foilage!  --Marge Simpson
http://www.gnu.org/philosophy/shouldbefree.html
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-13 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
>> By the time user was able to start moving notifications,
>> they go away (within 3 secs I think).
> 
> As I've already mentioned, I've found at least two counterexamples to
> this in Nokia's own apps: the most famous being the email deletion
> notification.
> 
> If you're going to allow applications to treat notifications as
> non-modal (which Nokia has), then they MUST be movable.
> 
> While we're on the topic of notifications, 3 seconds is a LONG TIME to
> wait when you're moving fast to do something.  The problem here is that
> Nokia regularly conflates two different kinds of messages as
> "notifications":
> 
> 1. REAL notifications of finished operations, like "email loaded"
> 2. Dialogs which inform you of an operation ONGOING, like "deleting
> directory..."
> 
> #2 of course might have to be modal depending on the operation.
> But #1 NEVER has to be modal,

I don't understand.  Infoprints are never modal, they don't even
take focus.


> and indeed the fact that it's sitting there for 3
> seconds or whatever, making me wait before I can do something for no
> reason at all, is really quite surprisingly irritating.  For example,
> the "touch screen and buttons activated" notification is VERY irritating
> -- once I have unlocked my screen I must sit and wait for another 3
> seconds before I'm permitted to actually do anything.  Why? So I can
> read a notification which I've already seen a hundred million times.

If this is really a case, please file a bug to the Maemo Bugzilla.


> What you should do is distinguish between these somehow.  I personally
> would make all #2-style notifications modal,

According to the device UI style, dialogs should be always modal
(to application if there's an application window open). If they
are not, please file a bug about those too.  (you can refer to
the UI stylesheet :-))


>> The only reason why user would want to resize a dialog (that I can think
>> of) is to make it larger so that she can see more of its content.
>> However, these kind of dialogs usually already take all the available
>> space, so I don't see much point in that.
> 
> This is simply not true.  Almost *none* of your dialogs take close to
> all available space, and IMHO most of them are pretty bad when it comes
> to organization.

I hope the Nokia UI designers are also reading this list...


> - The Font/Format selector could have been resized to a much larger
> size, eliminating unneccessary tab panes, allowing the user to choose
> his font from a list rather than a pop-up combo box (why is
> bold/italic/underline on a SECONDARY pane? sheesh), automatically
> showing the preview without the user having to press the preview button
> AND then the close button, etc.  You wasted space badly there.  Go get a
> Mac and look at its resizable, well-organized font panel.  This is what
> Nokia should be emulating.
> 
> - The Color Selector could be resized to permit more user swatches,
> 
> - The Open File panel could have been made larger in both width and
> height, and here it'd really be useful.  Such dialogs also have
> unnecessarily large tall title bars and waste a ton of valuable vertical
> space in the button row.  Why are the buttons on the bottom in such a
> height-constrained dialog?
> 
> - Likewise for Save panels
> 
> - Contacts's "Add Field" dialog is miniscule, requiring a scrolling
> list for fields.  I guess that's fine since Contacts only has FOUR
> OPTIONS there.  Were Contacts to permit new fields (hello? Snail-mail
> address?  Birthday? GPS? AIM? Anniversary? IRC Handle? Custom fields?),
> this window would be far too small.
> 
> etc.
> 
>> If the dialog doesn't fill up the screen and is instead in a size that's
>> not usable, that's a bug which should be reported separately.
> 
> These problems are endemic, not specific.  I'm not going to fill out bug
> reports for thirty different dialog boxes.

Fact of life: Bugs that are not reported to bug tracking system
"do not exist".  Maybe you could file a single bug about dialog sizes
in general and list above items in it?


>> Note that some of the dialogs have static sizes because Gtk doesn't
>> always handle automatic resizing well enough.  This is only a problem
>> with text ellipsizing though I think.  Gtk has only concepts of minimum
>> (for ellipsizable text="...") and full size of a widget, as getting
>> something reasonable in between would need a lot of iterating (slowdown)
>> for the widget sizes.
> 
> Why do your windows need to have live resizing?

I'm not talking about user resizes, but calculating the dialog sizes.

Did palms or Newtons ellipsize too long strings or were they only
available in English? :-)


- Eero

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-13 Thread Eero Tamminen
Hi,

ext Levi Bard wrote:
>> If infoprints could be dismissed by
>> simply clicking on them, you wouldn't have any problems.
> 
> I second this suggestion.  No need for a close button, just make it go
> away when I tap it.

Good suggestion, I don't see any problems with that
(app is not managing the infoprints, they can disappear
whenever they want to, only progress banners are controlled
by the application)

Could you make a bug (enhancement request) about this
to Maemo Bugzilla?


- Eero
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Tapani Pälli
ext Sean Luke wrote:
> On Apr 12, 2007, at 1:37 AM, Tapani Pälli wrote:
>
>>> The *right* thing would be to make all maemo dialogs and notifcations:
>>> 1. Resiable
>>> 2. Movable
>>> 3. Persistent (so next time you reopen the app, the dialog is pops
>>> up in exactly the size and place you put it last time)
>>>
>>> This would allow users to adjust dialogs and notifications as they
>>> prefer.
>>>
>>
>> Yes, this is *right* thing for someone, something else is *right* thing
>> for someone else. Persistency sounds good to me, however I don't see
>> much reason in moving modal dialogs on the screen except 'just for fun'.
>
> Moving's not a big deal.  Resizing is a *big* deal.  Many of your
> dialogs are too small, or they obscure what we're operating on.  At
> any rate, the bigger problem is that existing dialogs are not
> permitted to be movable or resizable even if it's helpful to the
> developer.
>

I'm sorry but I don't see this as a problem. It's more work for the user
to start resizing and moving a dialog than just filling in the
information what dialog requests. In my opinion we have probably too
much dialogs in the first place, but I'm not the UI designer ...

>
>> Resizing dialogs assumes that they all have scrollable and resizable
>> content. Layout of the content has been carefully designed and will very
>> likely 'break' when dialog is resized unless content is packed in a
>> scrollable widget. In fact you can try this with several desktop apps
>> and see how they break.
>
> Correct me here, as I'm not in a spot right now where I can do a test,
> but if I recall, dialogs can't be resized or moved.  Why not make this
> an option, and let the developer choose it or not?  And further, have
> the windows stay where the user put them?
>

I mean try some linux distribution with Gtk programs, resize them and
you'll see that in some of them layout can change quite much depending
on the size of the window. You would get same kind of behaviour with
resizable dialogs, weirdish looking layouts + sometimes not having
scrollbars and only seeing part of contents .. of course this can be
solved with modifications to applications.

> Sean

// Tapani

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Matthew Allum

Hey;

On 4/11/07, Sean Luke <[EMAIL PROTECTED]> wrote:
Hi;


On Apr 11, 2007, at 12:07 PM, Eero Tamminen wrote:

>> For the moment I'm experimenting with various floating windows for
>> various utility functions -- my drag-and-drop example on my N800
>> website, say.
>
> Do you have an URL?


> cs.gmu.edu/~sean/stuff/n800/




Aha. If it newton style clip board you are trying to copy - I think
the way to do it would be something like;

 - When copied text is dragged use an override redirect window or potentially
   even better change the cursor image to represent the copied text
(not sure if
   this is totally possible - would need some experimentation). You'll need to
   move the window yourself (no big deal).

- When this window reaches a screen edge, unmap it and the remap a dialog
  window with the following set;
  o no decorations.
  o transient for root
  o _NET_WM_ABOVE hint set . (this may not be needed)

- For pasteing / moving repeat / reverse the process. You could also
potentially handle resizing if need be.

That should hopefully do what you want and work fine with MB.

 -- Matthew
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Levi Bard

If infoprints could be dismissed by
simply clicking on them, you wouldn't have any problems.


I second this suggestion.  No need for a close button, just make it go
away when I tap it.

--
It doesn't take a nukular scientist to pronounce foilage!  --Marge Simpson
http://www.gnu.org/philosophy/shouldbefree.html
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


: Moving windows in Maemo

2007-04-12 Thread Sean Luke

Riku Voipio wrote:

The UI should not use a dialog if it ends up hiding relevant  
information
below it... IMNHO current UI overuses dialogs. Just count how many  
popup dialogs

you need to get a http proxy set for a new wlan connection...


I think Nokia has forgotten a crucial feature of GUI design in small  
devices, which they had pioneered in phones: that the number of  
interactions (in this case, taps) should be reduced to an absolute  
minimum.


On my web page (sorry, I keep referring to it, but it's got all the  
good pictures), I've got a classic example: the awful Contacts  
application.  If I wish to view the existing data a contact, I need  
to do this:


- Tap the filter so I can see the contact, and scroll to it
- Tap the contact
- Press the weird ">>" button
- Click on "Details"
- Examine the data
- Click close
- Click close AGAIN

On the Address Book application on the Mac, here's what I need to do:

- Scroll to the contact
- Tap the contact
- Examine the data

No closing anything.  Likewise if I wish to EDIT the contact in  
Contacts and add an additional email address, I need to:


- Tap the filter so I can see the contact, and scroll to it
- Tap the contact
- Press the weird ">>" button
- Click on "Edit"
- Click on "Add Field"
- Choose Email
- Click "OK" (bad name)
- Fill in the new email address
- Click close
- Click close AGAIN

On MacOS X's Address Book, here's what I do:

- Scroll to the contact
- Tap the contact
- Click "Edit"
- Click "+" next to the existing email address
- Fill in the new email address

I don't even need to bother clicking Edit again to turn off edit mode  
if I don't care.


The Newton is similar to the Mac here.  And on top of it, on the Mac  
and Newton I can *see* everything that's going on during this process  
because it's not being obscured by a big stack of dialog boxes.  The  
difference is that Nokia has us wending through large collections of  
modal okay/close dialog boxes when it SHOULD be using pop-up menus  
and state changing buttons (like "Edit") to reduce the complexity of  
the system.


I wish that Contacts were the only offender here.  But it's not.  The  
company needs to work much harder at flattening the user's GUI modality.


Sean

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Sean Luke

On Apr 12, 2007, at 4:41 AM, Eero Tamminen wrote:


By the time user was able to start moving notifications,
they go away (within 3 secs I think).


As I've already mentioned, I've found at least two counterexamples to  
this in Nokia's own apps: the most famous being the email deletion  
notification.


If you're going to allow applications to treat notifications as non- 
modal (which Nokia has), then they MUST be movable.


While we're on the topic of notifications, 3 seconds is a LONG TIME  
to wait when you're moving fast to do something.  The problem here is  
that Nokia regularly conflates two different kinds of messages as  
"notifications":


1. REAL notifications of finished operations, like "email loaded"
	2. Dialogs which inform you of an operation ONGOING, like "deleting  
directory..."


#2 of course might have to be modal depending on the operation.  But  
#1 NEVER has to be modal, and indeed the fact that it's sitting there  
for 3 seconds or whatever, making me wait before I can do something  
for no reason at all, is really quite surprisingly irritating.  For  
example, the "touch screen and buttons activated" notification is  
VERY irritating -- once I have unlocked my screen I must sit and wait  
for another 3 seconds before I'm permitted to actually do anything.   
Why?  So I can read a notification which I've already seen a hundred  
million times.


What you should do is distinguish between these somehow.  I  
personally would make all #2-style notifications modal, but for #1,  
I'd instead temporarily (3 secs) change the text of the application's  
title menu bar to the notification text, and change the menu bar's  
color to an alert color.  That's out of the way, non-modal, and  
doesn't obscure anything relevant.



The only reason why user would want to resize a dialog (that I can  
think

of) is to make it larger so that she can see more of its content.
However, these kind of dialogs usually already take all the available
space, so I don't see much point in that.


This is simply not true.  Almost *none* of your dialogs take close to  
all available space, and IMHO most of them are pretty bad when it  
comes to organization.


	- The Font/Format selector could have been resized to a much larger  
size, eliminating unneccessary tab panes, allowing the user to choose  
his font from a list rather than a pop-up combo box (why is bold/ 
italic/underline on a SECONDARY pane? sheesh), automatically showing  
the preview without the user having to press the preview button AND  
then the close button, etc.  You wasted space badly there.  Go get a  
Mac and look at its resizable, well-organized font panel.  This is  
what Nokia should be emulating.


- The Color Selector could be resized to permit more user swatches,

	- The Open File panel could have been made larger in both width and  
height, and here it'd really be useful.  Such dialogs also have  
unnecessarily large tall title bars and waste a ton of valuable  
vertical space in the button row.  Why are the buttons on the bottom  
in such a height-constrained dialog?


- Likewise for Save panels

	- Contacts's "Add Field" dialog is miniscule, requiring a scrolling  
list for fields.  I guess that's fine since Contacts only has FOUR  
OPTIONS there.  Were Contacts to permit new fields (hello? Snail-mail  
address?  Birthday? GPS? AIM? Anniversary? IRC Handle? Custom  
fields?), this window would be far too small.


etc.




If the dialog doesn't fill up the screen and is instead in a size  
that's

not usable, that's a bug which should be reported separately.


These problems are endemic, not specific.  I'm not going to fill out  
bug reports for thirty different dialog boxes.





Note that some of the dialogs have static sizes because Gtk doesn't
always handle automatic resizing well enough.  This is only a problem
with text ellipsizing though I think.  Gtk has only concepts of  
minimum

(for ellipsizable text="...") and full size of a widget, as getting
something reasonable in between would need a lot of iterating  
(slowdown)

for the widget sizes.


Why do your windows need to have live resizing?  Can't you just do a  
wireframe resize?


Sean

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Sean Luke

On Apr 12, 2007, at 1:37 AM, Tapani Pälli wrote:

The *right* thing would be to make all maemo dialogs and  
notifcations:

1. Resiable
2. Movable
3. Persistent (so next time you reopen the app, the dialog is  
pops

up in exactly the size and place you put it last time)

This would allow users to adjust dialogs and notifications as they
prefer.



Yes, this is *right* thing for someone, something else is *right*  
thing

for someone else. Persistency sounds good to me, however I don't see
much reason in moving modal dialogs on the screen except 'just for  
fun'.


Moving's not a big deal.  Resizing is a *big* deal.  Many of your  
dialogs are too small, or they obscure what we're operating on.  At  
any rate, the bigger problem is that existing dialogs are not  
permitted to be movable or resizable even if it's helpful to the  
developer.




Resizing dialogs assumes that they all have scrollable and resizable
content. Layout of the content has been carefully designed and will  
very

likely 'break' when dialog is resized unless content is packed in a
scrollable widget. In fact you can try this with several desktop apps
and see how they break.


Correct me here, as I'm not in a spot right now where I can do a  
test, but if I recall, dialogs can't be resized or moved.  Why not  
make this an option, and let the developer choose it or not?  And  
further, have the windows stay where the user put them?


Sean___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Tapani Pälli
Eero Tamminen wrote:
> Hi,
>
> ext Tapani Pälli wrote:
>   
>>> The need for a close button and move option in infoprints is, as
>>> stated before, they just prevent you from accessing stuff below them.
>>>
>>> Example: I can't crank up the brightness immediately (or mute sound)
>>> when the "Connected to AP" infoprint is shown and it bothers me to
>>> wait. Can't interact with the widgets under the infoprint. A dismiss
>>> button on the top right in each infoprint would solve this. Without
>>> the ability to close/dismiss these makes the users wait unnecessarily,
>>> and that is just bad design.
>>>
>>>   
>> Well I don't really agree that 2.5 secs is 'too long' but I agree that
>> sometimes infoprints are irritating, especially if there's more than 2
>> of them on top of each other ... it would be much better to have a
>> quake-console instead. We have had some discussion about more
>> centralized system, 'infoprint daemon' which could handle the queue of
>> messages with more intelligence and maybe user could also read the stuff
>> from backlog if does not want them infoprints to appear. Suggestions are
>> welcome!
>> 
>
> Most of the infoprints should be application, not system ones.
> Doing application specific infoprints (ones that are trancient
> to application windows so that they are stacked with them) safely
> could be quite tricky.
>
>   

Only system-infoprints and infoprints for topmost application would be
shown. Maybe some tricky corner-cases, but I think a centralized system
would make a lot of sense. Infoprints that are not for topmost window
can be forgotten or shown later on.

>   - Eero
>   

// Tapani

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Eero Tamminen
Hi,

ext Tapani Pälli wrote:
>> The need for a close button and move option in infoprints is, as
>> stated before, they just prevent you from accessing stuff below them.
>>
>> Example: I can't crank up the brightness immediately (or mute sound)
>> when the "Connected to AP" infoprint is shown and it bothers me to
>> wait. Can't interact with the widgets under the infoprint. A dismiss
>> button on the top right in each infoprint would solve this. Without
>> the ability to close/dismiss these makes the users wait unnecessarily,
>> and that is just bad design.
>>
> 
> Well I don't really agree that 2.5 secs is 'too long' but I agree that
> sometimes infoprints are irritating, especially if there's more than 2
> of them on top of each other ... it would be much better to have a
> quake-console instead. We have had some discussion about more
> centralized system, 'infoprint daemon' which could handle the queue of
> messages with more intelligence and maybe user could also read the stuff
> from backlog if does not want them infoprints to appear. Suggestions are
> welcome!

Most of the infoprints should be application, not system ones.
Doing application specific infoprints (ones that are trancient
to application windows so that they are stacked with them) safely
could be quite tricky.


- Eero
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Riku Voipio

Mika Yrjölä wrote:

For me, the main benefit for being able to move the dialogs around at
will would be the ability to position the dialog so that no
information relevant for deciding how to react to the dialog is hidden
below it. While the current default of the dialog changing to display
just a wireframe of its geometry of course allows user to see what's
below, it's not possible to interact with the dialog while looking at
the information and vice versa. 
The UI should not use a dialog if it ends up hiding relevant information 
below

it... IMNHO current UI overuses dialogs. Just count how many popup dialogs
you need to get a http proxy set for a new wlan connection...
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Tapani Pälli
ext Kemal Hadimli wrote:
> (Sorry, wrong from field. Reposting.)
>
>
> The need for a close button and move option in infoprints is, as
> stated before, they just prevent you from accessing stuff below them.
>
> Example: I can't crank up the brightness immediately (or mute sound)
> when the "Connected to AP" infoprint is shown and it bothers me to
> wait. Can't interact with the widgets under the infoprint. A dismiss
> button on the top right in each infoprint would solve this. Without
> the ability to close/dismiss these makes the users wait unnecessarily,
> and that is just bad design.
>

Well I don't really agree that 2.5 secs is 'too long' but I agree that
sometimes infoprints are irritating, especially if there's more than 2
of them on top of each other ... it would be much better to have a
quake-console instead. We have had some discussion about more
centralized system, 'infoprint daemon' which could handle the queue of
messages with more intelligence and maybe user could also read the stuff
from backlog if does not want them infoprints to appear. Suggestions are
welcome!


> Another example: Some infoprints are there for a long time. Think
> maemo-mapper downloading maps. The app is multithreaded and the
> download process doesn't block you from browsing around, but you can't
> access under the infoprint because there's no way to move it around
> (or close/dismiss it)
>
Yep I don't like that too, I think maemo-mapper should just have some
kind of small animated icon in corner or toolbar with progressbar.

> (Also, persistency among different types of infoprints would be good,
> position etc)
>
>
> A good way to handle this would be to register "notifications" with
> the system, and then make a control panel applet to browse through
> notifications (grouped by applications that registered them) and reset
> states, disable some notifications (Some people might not want to
> receive notification from maemo-connectivity-something each time it's
> connected to an AP) and such.
>
> A workflow example off the top of my head would be something like this:
>
> Application A (let's call this "mapper") registers notifications at
> installation (or on run, whatever)
> notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_DLP, "Map
> download notification", NSYS_PROGRESS);
> notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_DLC, "Download
> complete", NSYS_TEXT);
> notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_GENERR,
> "Error-generic", NSYS_TEXT);
>
> first parameter could be a application-wide unique id for the
> notification, second is the "name" (not text) and third is the type
> (progressbar or whatnot)
>
> then, to display notifications the app would just call:
> notificationSystem_display(UNIQUE_ID_FOR_NOTIFICATION_DLC, "The
> download is complete");
>
> Then the system decides whether or not to show it (depending on the
> user prefs, see blow) where to place it and what size, etc.
>
> The control panel applet to manage notifications would show a list of
> the applications that registered notifications:
> +application b
> +application c
> +maemo-desktop
> +mapper
>
> and when clicked it would show a list of registered notifications for
> that app. Which the user can then "set a size and position", disable
> (disabled notifications are not displayed), or reset (defaults)
>
>
> Ok, i went a little off topic there.
>
> Best regards,
> Kemal
>
> On 4/12/07, Tapani Pälli <[EMAIL PROTECTED]> wrote:
>> ext Sean Luke wrote:
>> > On Apr 11, 2007, at 12:07 PM, Eero Tamminen wrote:
>> >
>> >>> For the moment I'm experimenting with various floating windows for
>> >>> various utility functions -- my drag-and-drop example on my N800
>> >>> website, say.
>> >>
>> >> Do you have an URL?
>> >
>> > cs.gmu.edu/~sean/stuff/n800/
>> >
>> > [Perhaps I might issue that entire webpage as a bug on Bugzilla, but
>> > then I'd be ask to break it up into individual reports :-)]
>> >
>> >> Drag and drop is initiated with stylus being pressed & moved and
>> >> it goes away when the stylus is lifted.  So an OverrideRedirect
>> (popup)
>> >> window is OK for D&D indication (and a stylus grab is implicit
>> when the
>> >> stulys/button is down), but Gtk should already be doing the D&D
>> >> indication for you...?
>> >
>> > It's a different need than that, but thanks for the info nonetheless.
>> > I'm thinking I might try something similar to the Newton's cut/paste
>> > mechanism (see the article).
>> >
>> >> Hm.  I think all the dialogs should be modal according to the UI
>> >> guidelines.
>> >
>> > I've found at least two apps where that's not been the case.  I can
>> > mention one off the top of my head: deletion of email in the email
>> > program.
>> >
>> >
>> >>>  Even if the window manager's movable-windows switch
>> >>> *was* turned on, I'm not sure if they could still be moved, as they
>> >>> don't have decorations.
>> >>
>> >> Which windows don't have decorations?
>> >
>> > Notification windows.
>> >
>>
>> I don't s

Re: Moving windows in Maemo

2007-04-12 Thread Ross Burton
On Thu, 2007-04-12 at 14:00 +0300, Kemal Hadimli wrote:
> The need for a close button and move option in infoprints is, as
> stated before, they just prevent you from accessing stuff below them.

By the time you'd moved a banner out of the way it would disappear, so
all you need is a close button.  If infoprints could be dismissed by
simply clicking on them, you wouldn't have any problems. 

Ross
-- 
Ross Burton mail: [EMAIL PROTECTED]
  jabber: [EMAIL PROTECTED]
 www: http://www.burtonini.com./
 PGP Fingerprint: 1A21 F5B0 D8D0 CFE3 81D4 E25A 2D09 E447 D0B4 33DF



___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Eero Tamminen
Hi,

ext Kemal Hadimli wrote:
> The need for a close button and move option in infoprints is, as
> stated before, they just prevent you from accessing stuff below them.
> 
> Example: I can't crank up the brightness immediately (or mute sound)
> when the "Connected to AP" infoprint is shown and it bothers me to
> wait. Can't interact with the widgets under the infoprint. A dismiss
> button on the top right in each infoprint would solve this. Without
> the ability to close/dismiss these makes the users wait unnecessarily,
> and that is just bad design.

Dialogs and banners are conceptually different.  Dialogs expect user
interaction, take focus, and go away only on user interaction, banners
don't have any of these properties.

Besides, large enough, esthetically satisfactorily positioned close
button ('X') would take quite a lot of space in a banner. As a result
banners would cover significantly more of the screen and then you would
really need to close the banners...


> Another example: Some infoprints are there for a long time. Think
> maemo-mapper downloading maps. The app is multithreaded and the
> download process doesn't block you from browsing around, but you can't
> access under the infoprint because there's no way to move it around
> (or close/dismiss it)

If the progress notification is preventing you from something that
the application itself would be able to do, then the progress
notifications should be somewhere else.  E.g. in toolbar like with
Browser.  Maybe you should request this from the Maemo mapper instead?


- Eero

Disclaimer: I'm not a UI designer
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-12 Thread Kemal Hadimli

(Sorry, wrong from field. Reposting.)


The need for a close button and move option in infoprints is, as
stated before, they just prevent you from accessing stuff below them.

Example: I can't crank up the brightness immediately (or mute sound)
when the "Connected to AP" infoprint is shown and it bothers me to
wait. Can't interact with the widgets under the infoprint. A dismiss
button on the top right in each infoprint would solve this. Without
the ability to close/dismiss these makes the users wait unnecessarily,
and that is just bad design.

Another example: Some infoprints are there for a long time. Think
maemo-mapper downloading maps. The app is multithreaded and the
download process doesn't block you from browsing around, but you can't
access under the infoprint because there's no way to move it around
(or close/dismiss it)

(Also, persistency among different types of infoprints would be good,
position etc)


A good way to handle this would be to register "notifications" with
the system, and then make a control panel applet to browse through
notifications (grouped by applications that registered them) and reset
states, disable some notifications (Some people might not want to
receive notification from maemo-connectivity-something each time it's
connected to an AP) and such.

A workflow example off the top of my head would be something like this:

Application A (let's call this "mapper") registers notifications at
installation (or on run, whatever)
notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_DLP, "Map
download notification", NSYS_PROGRESS);
notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_DLC, "Download
complete", NSYS_TEXT);
notificationSystem_register(UNIQUE_ID_FOR_NOTIFICATION_GENERR,
"Error-generic", NSYS_TEXT);

first parameter could be a application-wide unique id for the
notification, second is the "name" (not text) and third is the type
(progressbar or whatnot)

then, to display notifications the app would just call:
notificationSystem_display(UNIQUE_ID_FOR_NOTIFICATION_DLC, "The
download is complete");

Then the system decides whether or not to show it (depending on the
user prefs, see blow) where to place it and what size, etc.

The control panel applet to manage notifications would show a list of
the applications that registered notifications:
+application b
+application c
+maemo-desktop
+mapper

and when clicked it would show a list of registered notifications for
that app. Which the user can then "set a size and position", disable
(disabled notifications are not displayed), or reset (defaults)


Ok, i went a little off topic there.

Best regards,
Kemal

On 4/12/07, Tapani Pälli <[EMAIL PROTECTED]> wrote:

ext Sean Luke wrote:
> On Apr 11, 2007, at 12:07 PM, Eero Tamminen wrote:
>
>>> For the moment I'm experimenting with various floating windows for
>>> various utility functions -- my drag-and-drop example on my N800
>>> website, say.
>>
>> Do you have an URL?
>
> cs.gmu.edu/~sean/stuff/n800/
>
> [Perhaps I might issue that entire webpage as a bug on Bugzilla, but
> then I'd be ask to break it up into individual reports :-)]
>
>> Drag and drop is initiated with stylus being pressed & moved and
>> it goes away when the stylus is lifted.  So an OverrideRedirect (popup)
>> window is OK for D&D indication (and a stylus grab is implicit when the
>> stulys/button is down), but Gtk should already be doing the D&D
>> indication for you...?
>
> It's a different need than that, but thanks for the info nonetheless.
> I'm thinking I might try something similar to the Newton's cut/paste
> mechanism (see the article).
>
>> Hm.  I think all the dialogs should be modal according to the UI
>> guidelines.
>
> I've found at least two apps where that's not been the case.  I can
> mention one off the top of my head: deletion of email in the email
> program.
>
>
>>>  Even if the window manager's movable-windows switch
>>> *was* turned on, I'm not sure if they could still be moved, as they
>>> don't have decorations.
>>
>> Which windows don't have decorations?
>
> Notification windows.
>

I don't see any reason to make infoprints resizable / movable. They are
there for few seconds only and for notifications it's good to have one
single place where they popup so your eye catches them.

>
>>> And various panels (fonts, saves, etc.) are not
>>
>> Panels = dialogs?
>
> Yes, sorry my NeXTSTEP past colors my vocabulary.
>
>
>>> resizable even when their size is unneccessarily too small to be
>>> useful.  In all cases, if you moved them or resized these dialogs,
>>
>> If something is unusably small and there would be more space on screen
>> to present that, it's definitely a bug.  Could you file this to Maemo
>> Bugzilla?
>
> It'd be for a lot of dialogs.
>
> The *right* thing would be to make all maemo dialogs and notifcations:
> 1. Resiable
> 2. Movable
> 3. Persistent (so next time you reopen the app, the dialog is pops
> up in exactly the size and place you put it last time)
>
> This w

Re: Moving windows in Maemo

2007-04-12 Thread Eero Tamminen
Hi,

Tapani Pälli wrote:
> ext Sean Luke wrote:
>> The *right* thing would be to make all maemo dialogs and notifcations:
>> 1. Resiable
>> 2. Movable

Why?

By the time user was able to start moving notifications,
they go away (within 3 secs I think).

The only reason why user would want to resize a dialog (that I can think
of) is to make it larger so that she can see more of its content.
However, these kind of dialogs usually already take all the available
space, so I don't see much point in that.

If the dialog doesn't fill up the screen and is instead in a size that's
not usable, that's a bug which should be reported separately.


Note that some of the dialogs have static sizes because Gtk doesn't
always handle automatic resizing well enough.  This is only a problem
with text ellipsizing though I think.  Gtk has only concepts of minimum
(for ellipsizable text="...") and full size of a widget, as getting
something reasonable in between would need a lot of iterating (slowdown)
for the widget sizes.


>> 3. Persistent (so next time you reopen the app, the dialog is pops
>> up in exactly the size and place you put it last time)
...
 they'd not stay put next time, because maemo doesn't have persistent
 state.
>>> Could you give an example of this problem?
>> Not for dialogs/notifications, as they're not adjustable.  But let's
>> take another example.  The email program (nicely) has adjustable
>> columns in its column view.  But if you quit the program after
>> carefully adjusting the columns, when you come back next time, they're
>> all reset to their default locations.  What's the point of that?
>>
>> In general, in a good PDA UI, things "stay put".  This is particularly
>> important for small screen devices like the 770/N800, as the user must
>> tweak to get things arranged in a usable state.  Having them
>> automatically untweak is very irritating.  Other examples of things
>> which should "stay put" after reloads:
>>
>> - scroll bar positions
>> - range settings
>> - combo box settings
>> - text
>> - checkboxes and radio buttons
>>
>> Much of this _should_ have been done at a system level; but at least
>> it can be hacked by the coder at the app level.  Unfortunately,
>> Nokia's mechanism for storing state persistence is broken: it doesn't
>> survive reboots.

Maybe you could make a bug about the persistency?


- Eero

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Mika Yrjölä

On 4/12/07, Tapani Pälli <[EMAIL PROTECTED]> wrote:


Yes, this is *right* thing for someone, something else is *right* thing
for someone else. Persistency sounds good to me, however I don't see
much reason in moving modal dialogs on the screen except 'just for fun'.


For me, the main benefit for being able to move the dialogs around at
will would be the ability to position the dialog so that no
information relevant for deciding how to react to the dialog is hidden
below it. While the current default of the dialog changing to display
just a wireframe of its geometry of course allows user to see what's
below, it's not possible to interact with the dialog while looking at
the information and vice versa. On desktop I'd just drag the dialog
into some harmless position if necessary and then do whatever seems to
be appropriate.

However, I admit that it's not a significant issue to me personally in
real-world usage; most of the time I know what to do with the current
dialog anyway, and most of the dialogs are small enough to not hide
much information below.  This is pretty much proven by the fact that
I've not cared enough to play with the aforementioned -use_dialog_mode
option, even though I've known about it existing :)

(on the other hand, novice users might like things working more like
they do on 'normal' desktops, but this is quite probably something
that has received attention while designing the UI in the first place,
and I know personally roughly as much about usability as about
construction of nuclear reactors, which isn't much)
___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Tapani Pälli
ext Sean Luke wrote:
> On Apr 11, 2007, at 12:07 PM, Eero Tamminen wrote:
>
>>> For the moment I'm experimenting with various floating windows for
>>> various utility functions -- my drag-and-drop example on my N800
>>> website, say.
>>
>> Do you have an URL?
>
> cs.gmu.edu/~sean/stuff/n800/
>
> [Perhaps I might issue that entire webpage as a bug on Bugzilla, but
> then I'd be ask to break it up into individual reports :-)]
>
>> Drag and drop is initiated with stylus being pressed & moved and
>> it goes away when the stylus is lifted.  So an OverrideRedirect (popup)
>> window is OK for D&D indication (and a stylus grab is implicit when the
>> stulys/button is down), but Gtk should already be doing the D&D
>> indication for you...?
>
> It's a different need than that, but thanks for the info nonetheless. 
> I'm thinking I might try something similar to the Newton's cut/paste
> mechanism (see the article).
>
>> Hm.  I think all the dialogs should be modal according to the UI
>> guidelines.
>
> I've found at least two apps where that's not been the case.  I can
> mention one off the top of my head: deletion of email in the email
> program.
>
>
>>>  Even if the window manager's movable-windows switch
>>> *was* turned on, I'm not sure if they could still be moved, as they
>>> don't have decorations.
>>
>> Which windows don't have decorations?
>
> Notification windows.
>

I don't see any reason to make infoprints resizable / movable. They are
there for few seconds only and for notifications it's good to have one
single place where they popup so your eye catches them.

>
>>> And various panels (fonts, saves, etc.) are not
>>
>> Panels = dialogs?
>
> Yes, sorry my NeXTSTEP past colors my vocabulary.
>
>
>>> resizable even when their size is unneccessarily too small to be
>>> useful.  In all cases, if you moved them or resized these dialogs,
>>
>> If something is unusably small and there would be more space on screen
>> to present that, it's definitely a bug.  Could you file this to Maemo
>> Bugzilla?
>
> It'd be for a lot of dialogs.
>
> The *right* thing would be to make all maemo dialogs and notifcations:
> 1. Resiable
> 2. Movable
> 3. Persistent (so next time you reopen the app, the dialog is pops
> up in exactly the size and place you put it last time)
>
> This would allow users to adjust dialogs and notifications as they
> prefer.
>

Yes, this is *right* thing for someone, something else is *right* thing
for someone else. Persistency sounds good to me, however I don't see
much reason in moving modal dialogs on the screen except 'just for fun'.
Resizing dialogs assumes that they all have scrollable and resizable
content. Layout of the content has been carefully designed and will very
likely 'break' when dialog is resized unless content is packed in a
scrollable widget. In fact you can try this with several desktop apps
and see how they break.

>
>>> they'd not stay put next time, because maemo doesn't have persistent
>>> state.
>>
>> Could you give an example of this problem?
>
> Not for dialogs/notifications, as they're not adjustable.  But let's
> take another example.  The email program (nicely) has adjustable
> columns in its column view.  But if you quit the program after
> carefully adjusting the columns, when you come back next time, they're
> all reset to their default locations.  What's the point of that?
>
> In general, in a good PDA UI, things "stay put".  This is particularly
> important for small screen devices like the 770/N800, as the user must
> tweak to get things arranged in a usable state.  Having them
> automatically untweak is very irritating.  Other examples of things
> which should "stay put" after reloads:
>
> - scroll bar positions
> - range settings
> - combo box settings
> - text
> - checkboxes and radio buttons
>
> Much of this _should_ have been done at a system level; but at least
> it can be hacked by the coder at the app level.  Unfortunately,
> Nokia's mechanism for storing state persistence is broken: it doesn't
> survive reboots.
>
> Sean
> ___
> maemo-developers mailing list
> [EMAIL PROTECTED]
> https://maemo.org/mailman/listinfo/maemo-developers
>

// Tapani

___
maemo-developers mailing list
[EMAIL PROTECTED]
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Kalle Vahlman

2007/4/11, Eero Tamminen <[EMAIL PROTECTED]>:

Hi,

ext Kalle Vahlman wrote:
> 2007/4/9, Sean Luke <[EMAIL PROTECTED]>:
>> On Apr 9, 2007, at 4:38 AM, Kalle Vahlman wrote:
>> >> g = gtk.Window(gtk.WINDOW_POPUP)
>> >>
>> >> works fine.
>>
>> Thanks.  The primary concern I have about WINDOW_POPUP is that it's
>> "different" from other kinds of windows.  A myriad of disadvantages
>> to it are listed here:
>>
>> http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-window-type-
>> constants
>
> Yes, they are all pretty much saying "the window manager won't do
> anything with POPUP windows" and that's correct. However, since
> applications shouldn't be overriding the window manager behaviour,
> that's the "correct" way to circumvent unwanted window manager
> intervention.

I think popup type sets the OverrideRedirect flag for the window.


Yes, and as the flag states it overrides the redirection of window
operations to the window manager for consideration.


> I'm not sure what the "many features" mentioned there exactly are, but
> since you would be overriding the wm anyway, I doubt there will be
> much that you lose...

Moving windows is not really overriding WM...


Yes it is, if the window manager enforces a policy that doesn't allow
it. It is the window manager that decides where the windows will be,
whether the user can move them and what kind of borders it has. The
clients can only present their wishes and hope for the best.
User-driven window placement is solely an agreement between window
manager and the user, client software should keep their hands off it
;)


Dialogs can already e.g. position themselves on the screen how
they want, WM centers the dialogs only if they haven't set
co-ordinates before mapping themselves.


Matchbox might allow that, some other wm might not.

So in short:

1) override the wm and manage the windows yourself
2) fix / switch the wm
3) suck it up and go with the flow

I'd suggest number three, as that is the least likely to cause
annoying windowing problems. :P

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Sean Luke

On Apr 11, 2007, at 12:07 PM, Eero Tamminen wrote:


For the moment I'm experimenting with various floating windows for
various utility functions -- my drag-and-drop example on my N800
website, say.


Do you have an URL?


cs.gmu.edu/~sean/stuff/n800/

[Perhaps I might issue that entire webpage as a bug on Bugzilla, but  
then I'd be ask to break it up into individual reports :-)]



Drag and drop is initiated with stylus being pressed & moved and
it goes away when the stylus is lifted.  So an OverrideRedirect  
(popup)
window is OK for D&D indication (and a stylus grab is implicit when  
the

stulys/button is down), but Gtk should already be doing the D&D
indication for you...?


It's a different need than that, but thanks for the info  
nonetheless.  I'm thinking I might try something similar to the  
Newton's cut/paste mechanism (see the article).



Hm.  I think all the dialogs should be modal according to the UI
guidelines.


I've found at least two apps where that's not been the case.  I can  
mention one off the top of my head: deletion of email in the email  
program.




 Even if the window manager's movable-windows switch
*was* turned on, I'm not sure if they could still be moved, as they
don't have decorations.


Which windows don't have decorations?


Notification windows.



And various panels (fonts, saves, etc.) are not


Panels = dialogs?


Yes, sorry my NeXTSTEP past colors my vocabulary.



resizable even when their size is unneccessarily too small to be
useful.  In all cases, if you moved them or resized these dialogs,


If something is unusably small and there would be more space on screen
to present that, it's definitely a bug.  Could you file this to Maemo
Bugzilla?


It'd be for a lot of dialogs.

The *right* thing would be to make all maemo dialogs and notifcations:
1. Resiable
2. Movable
	3. Persistent (so next time you reopen the app, the dialog is pops  
up in exactly the size and place you put it last time)


This would allow users to adjust dialogs and notifications as they  
prefer.




they'd not stay put next time, because maemo doesn't have persistent
state.


Could you give an example of this problem?


Not for dialogs/notifications, as they're not adjustable.  But let's  
take another example.  The email program (nicely) has adjustable  
columns in its column view.  But if you quit the program after  
carefully adjusting the columns, when you come back next time,  
they're all reset to their default locations.  What's the point of that?


In general, in a good PDA UI, things "stay put".  This is  
particularly important for small screen devices like the 770/N800, as  
the user must tweak to get things arranged in a usable state.  Having  
them automatically untweak is very irritating.  Other examples of  
things which should "stay put" after reloads:


- scroll bar positions
- range settings
- combo box settings
- text
- checkboxes and radio buttons

Much of this _should_ have been done at a system level; but at least  
it can be hacked by the coder at the app level.  Unfortunately,  
Nokia's mechanism for storing state persistence is broken: it doesn't  
survive reboots.


Sean
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Eero Tamminen
Hi,

ext Sean Luke wrote:
> On Apr 11, 2007, at 10:49 AM, Eero Tamminen wrote:
> 
>> If one wants all dialogs to be movable, one can just set suitable
>> -use_dialog_mode policy option value in the matchbox-window-manager
>> startup script: /etc/osso-af-init/matchbox.sh and restart the device.
>> (and if you make a mistake and matchbox doesn't startup, the device
>> may end up in a reboot loop, so test this first in Scratchbox!)
> 
> Thanks Eero.  But therein lies the rub.  As a developer, I'd like
> software I write to be accessible to as wide an audience as possible: if
> people can potentially brick their machines by doing what's necessary to
> install my software, that's not a reasonable distribution strategy.
> 
> For the moment I'm experimenting with various floating windows for
> various utility functions -- my drag-and-drop example on my N800
> website, say.

Do you have an URL?


> To do so I need a way around the present IMHO
> ill-considered window manager restrictions.  The only options are
> dialogs (which create lots of artifacts on moving/resizing) and, thanks
> to Kalle, popups.

Drag and drop is initiated with stylus being pressed & moved and
it goes away when the stylus is lifted.  So an OverrideRedirect (popup)
window is OK for D&D indication (and a stylus grab is implicit when the
stulys/button is down), but Gtk should already be doing the D&D
indication for you...?


>> Dialogs can already e.g. position themselves on the screen how
>> they want, WM centers the dialogs only if they haven't set
>> co-ordinates before mapping themselves.
> 
> Sure, but...
> 
> 
> As for the "standard" dialogs: except for PalmOS -- which for god's sake
> I hope you're not trying to emulate -- I cannot immediately think of
> another current PDA^H^H^HInternet Tablet UI which does not have the
> option of movable or resizable windows.  Maemo's notification windows
> can't be moved, even when they're not modal and are blocking other GUI
> operations (!!!)

Hm.  I think all the dialogs should be modal according to the UI
guidelines.


>  Even if the window manager's movable-windows switch
> *was* turned on, I'm not sure if they could still be moved, as they
> don't have decorations.

Which windows don't have decorations?


> And various panels (fonts, saves, etc.) are not

Panels = dialogs?

> resizable even when their size is unneccessarily too small to be
> useful.  In all cases, if you moved them or resized these dialogs,

If something is unusably small and there would be more space on screen
to present that, it's definitely a bug.  Could you file this to Maemo
Bugzilla?


> they'd not stay put next time, because maemo doesn't have persistent
> state.

Could you give an example of this problem?


- Eero

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Sean Luke

On Apr 11, 2007, at 10:49 AM, Eero Tamminen wrote:


If one wants all dialogs to be movable, one can just set suitable
-use_dialog_mode policy option value in the matchbox-window-manager
startup script: /etc/osso-af-init/matchbox.sh and restart the device.
(and if you make a mistake and matchbox doesn't startup, the device
may end up in a reboot loop, so test this first in Scratchbox!)


Thanks Eero.  But therein lies the rub.  As a developer, I'd like  
software I write to be accessible to as wide an audience as possible:  
if people can potentially brick their machines by doing what's  
necessary to install my software, that's not a reasonable  
distribution strategy.


For the moment I'm experimenting with various floating windows for  
various utility functions -- my drag-and-drop example on my N800  
website, say.  To do so I need a way around the present IMHO ill- 
considered window manager restrictions.  The only options are dialogs  
(which create lots of artifacts on moving/resizing) and, thanks to  
Kalle, popups.




Dialogs can already e.g. position themselves on the screen how
they want, WM centers the dialogs only if they haven't set
co-ordinates before mapping themselves.


Sure, but...


As for the "standard" dialogs: except for PalmOS -- which for god's  
sake I hope you're not trying to emulate -- I cannot immediately  
think of another current PDA^H^H^HInternet Tablet UI which does not  
have the option of movable or resizable windows.  Maemo's  
notification windows can't be moved, even when they're not modal and  
are blocking other GUI operations (!!!)  Even if the window manager's  
movable-windows switch *was* turned on, I'm not sure if they could  
still be moved, as they don't have decorations.  And various panels  
(fonts, saves, etc.) are not resizable even when their size is  
unneccessarily too small to be useful.  In all cases, if you moved  
them or resized these dialogs, they'd not stay put next time, because  
maemo doesn't have persistent state.



Sean

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-11 Thread Eero Tamminen
Hi,

ext Kalle Vahlman wrote:
> 2007/4/9, Sean Luke <[EMAIL PROTECTED]>:
>> On Apr 9, 2007, at 4:38 AM, Kalle Vahlman wrote:
>> >> g = gtk.Window(gtk.WINDOW_POPUP)
>> >>
>> >> works fine.
>>
>> Thanks.  The primary concern I have about WINDOW_POPUP is that it's
>> "different" from other kinds of windows.  A myriad of disadvantages
>> to it are listed here:
>>
>> http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-window-type-
>> constants
> 
> Yes, they are all pretty much saying "the window manager won't do
> anything with POPUP windows" and that's correct. However, since
> applications shouldn't be overriding the window manager behaviour,
> that's the "correct" way to circumvent unwanted window manager
> intervention.

I think popup type sets the OverrideRedirect flag for the window.

This should normally be used only for windows such as popup menus
that take grabs on user input and disappear when user tries to
interact with something else.  Reason being that WM really doesn't
manage those, you could lose them under other windows and not be able
to retrieve them etc.  Doing grabs is even more evil (but unfortunately
in the case of menus, a necessary evil).


>> ...though perhaps for my purposes it may be acceptable.  Are these
>> problems with WINDOW_POPUP applicable to maemo, or are they mostly
>> for general gtk?
> 
> I'm not sure what the "many features" mentioned there exactly are, but
> since you would be overriding the wm anyway, I doubt there will be
> much that you lose...

Moving windows is not really overriding WM...

Dialogs can already e.g. position themselves on the screen how
they want, WM centers the dialogs only if they haven't set
co-ordinates before mapping themselves.


If one wants all dialogs to be movable, one can just set suitable
-use_dialog_mode policy option value in the matchbox-window-manager
startup script: /etc/osso-af-init/matchbox.sh and restart the device.
(and if you make a mistake and matchbox doesn't startup, the device
may end up in a reboot loop, so test this first in Scratchbox!)


> Depends on whatever "your purposes" might be of course, you neglected
> to mention them ;)


- Eero

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-09 Thread Kalle Vahlman

2007/4/9, Sean Luke <[EMAIL PROTECTED]>:

On Apr 9, 2007, at 4:38 AM, Kalle Vahlman wrote:
>> g = gtk.Window(gtk.WINDOW_POPUP)
>>
>> works fine.

Thanks.  The primary concern I have about WINDOW_POPUP is that it's
"different" from other kinds of windows.  A myriad of disadvantages
to it are listed here:
http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-window-type-
constants


Yes, they are all pretty much saying "the window manager won't do
anything with POPUP windows" and that's correct. However, since
applications shouldn't be overriding the window manager behaviour,
that's the "correct" way to circumvent unwanted window manager
intervention.


...though perhaps for my purposes it may be acceptable.  Are these
problems with WINDOW_POPUP applicable to maemo, or are they mostly
for general gtk?


I'm not sure what the "many features" mentioned there exactly are, but
since you would be overriding the wm anyway, I doubt there will be
much that you lose...

Depends on whatever "your purposes" might be of course, you neglected
to mention them ;)

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-09 Thread Sean Luke

On Apr 9, 2007, at 4:38 AM, Kalle Vahlman wrote:

g = gtk.Window(gtk.WINDOW_POPUP)

works fine.


Thanks.  The primary concern I have about WINDOW_POPUP is that it's  
"different" from other kinds of windows.  A myriad of disadvantages  
to it are listed here:
	http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-window-type- 
constants


...though perhaps for my purposes it may be acceptable.  Are these  
problems with WINDOW_POPUP applicable to maemo, or are they mostly  
for general gtk?


Sean

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-09 Thread Kalle Vahlman

2007/4/8, Sean Luke <[EMAIL PROTECTED]>:

Anyway, I whipped up the following little program below as a test and
low and behold I can get the window to drag around BUT it creates all
sorts of artifacts: screen tearing, a bizarre window flashing in the
top-left corner, and slow updates.  The window moves very slowly
too.  Not what I would have expected for a 300MHz machine.


Attached is a revised version of the test app, that doesn't show the
bug at least (changes commented below).

Few notes on dragging:

- The tearing is due to the poor screen update rate (basically a hw limitation)
- I'm under the impression that there is some (heavy?) filtering
going on wrt touchscreen input (to check the pressure data and so on),
and also physical limits of the touchscreen I guess (it's really easy
to make it think you lifted the stylys for example). Both of these
have an impact on how well the dragging will work.


import gtk

# We create a Dialog because maemo has hard-locked gtk.Window to be
the full
# size of the screen, and I've found now way to counteract that.


g = gtk.Window(gtk.WINDOW_POPUP)

works fine.


 We
then
# delete the separator and make the window bright blue.
g = gtk.Dialog()
g.set_has_separator(False)
g.set_decorated(False)
g.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0,0,65535))
g.resize(100,100)
g.move(300,300)

# We add a button to the Dialog and try to move after the Button has
# been pushed because if you set Dialog's mask to include
BUTTON_PRESSED,
# no BUTTON_PRESSED event actually gets through -- instead,
MOTION_NOTIFY
# starts coming in incorrectly.  Looks like another bug.  So we have to
# use a Button to grab the BUTTON_PRESSED events...
b = gtk.Button()
g.vbox.add(b)


I don't know what you tried here with the event mask, but

g.add_events(gtk.gdk.BUTTON_PRESS_MASK)

works just fine here (maybe it's the dialog that didn't work with this?)

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
import gtk

# We create a Dialog because maemo has hard-locked gtk.Window to be
# size of the screen, and I've found now way to counteract that.  We
# delete the separator and make the window bright blue.
g = gtk.Window(gtk.WINDOW_POPUP)
g.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0,0,65535))
g.resize(100,100)
g.move(300,300)

# We add a button to the Dialog and try to move after the Button has
# been pushed because if you set Dialog's mask to include
# no BUTTON_PRESSED event actually gets through -- instead,
# starts coming in incorrectly.  Looks like another bug.  So we have to
# use a Button to grab the BUTTON_PRESSED events...
g.add_events(gtk.gdk.BUTTON_PRESS_MASK)

# I'm using begin_move_drag here, but if I implement it myself with
# the same exact buggy artifacts occur.
g.connect("button_press_event", lambda widget, event:
   g.window.begin_move_drag(event.button,
   event.x + g.window.get_root_origin()[0],
   event.y + g.window.get_root_origin()[1], event.time))
g.show_all()
gtk.main()
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Re: Moving windows in Maemo

2007-04-08 Thread Matthew Allum

Hi;

On 4/8/07, Sean Luke <[EMAIL PROTECTED]> wrote:


Anyway, I whipped up the following little program below as a test and
low and behold I can get the window to drag around BUT it creates all
sorts of artifacts: screen tearing, a bizarre window flashing in the
top-left corner, and slow updates.


The flashing in top-left corner is a matchbox bug affecting moving
decoration-less dialogs. It was fixed a little while ago in matchbox
svn (2007-02-17 in ChangeLog) but I guess thats maybe a little later
than whats on the device.

In terms of the screen tearing and slow updates Id guess thats
probably an issue with moving the window a little too fast for what
the h/w can handle  (the screen tearing suggests you are moving them
very fast).

 -- Matthew
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers


Moving windows in Maemo

2007-04-08 Thread Sean Luke
I'm wondering if anyone has had previous experience in moving windows  
in maemo.  I'm experimenting with various things which involve small  
movable or resizable windows.  Yeah, yeah, I know that Nokia's UI  
guidelines foolishly declare that you can't move any windows, and  
that all drag-and-drop must stop at the app windows' edge.


Anyway, I whipped up the following little program below as a test and  
low and behold I can get the window to drag around BUT it creates all  
sorts of artifacts: screen tearing, a bizarre window flashing in the  
top-left corner, and slow updates.  The window moves very slowly  
too.  Not what I would have expected for a 300MHz machine.  There are  
three possibilities:


- I'm doing window moves all wrong.  The most likely case: in which  
case, how do I do it right?
- This bug was never caught by Nokia because it's a use case they  
didn't expect due to their UI guidelines.
- [conspiracy theorist alert :-)] Nokia specified the UI guidelines  
the way they did in order to avoid fixing this bug.  :-)


I strongly suspect the first.  Anyone tried to do this before?  No  
doubt I'm screwing something up.  I'm running on an N800, not  
upgraded yet.


Sean


import gtk

# We create a Dialog because maemo has hard-locked gtk.Window to be  
the full
# size of the screen, and I've found now way to counteract that.  We  
then

# delete the separator and make the window bright blue.
g = gtk.Dialog()
g.set_has_separator(False)
g.set_decorated(False)
g.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0,0,65535))
g.resize(100,100)
g.move(300,300)

# We add a button to the Dialog and try to move after the Button has
# been pushed because if you set Dialog's mask to include  
BUTTON_PRESSED,
# no BUTTON_PRESSED event actually gets through -- instead,  
MOTION_NOTIFY

# starts coming in incorrectly.  Looks like another bug.  So we have to
# use a Button to grab the BUTTON_PRESSED events...
b = gtk.Button()
g.vbox.add(b)

# I'm using begin_move_drag here, but if I implement it myself with  
move(...),

# the same exact buggy artifacts occur.
b.connect("button_press_event", lambda widget, event:
g.window.begin_move_drag(event.button,
event.x + g.window.get_root_origin()[0],
event.y + g.window.get_root_origin()[1], event.time))
g.show_all()
gtk.main()

___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers