pointer grab

2011-10-09 Thread control H
Dear list,

my app has a button, when it is pressed it waits till the pointer
clicks somewhere in a drawing area. I have implemented this by calling
gdk_device_grab() in the button-press callback. As such it works OK,
but a small detail is that after the drawing area has been clicked,
the button is still in the hoover mode. So the button thinks the
pointer is still on the button. The only way to reset the button to
it's true state is by moving the pointer and make sure it enters and
leaves the button again.

What do I need to do to prevent this behavior? I would like to see
that after clicking the drawing area the button is in it's
normal/natural state, i.e. it has received a leave signal.

regards,
CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Correct way to package win32 gtk programs

2008-06-02 Thread control H
  No doubt you will get other replies telling you to do it in a
  completely different way... And no doubt some may think the above is
  ridiculously complicated. But remember, constructing an installer for
  [...]
  --tml

Hi Tor,

I was just thinking a bit about this topic myself. Your method makes
sense to me, thanks for sharing your thoughts.

CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: FW: compiling gtk-engines under mingw

2007-11-11 Thread control H
 Has anyone been able to successfully compile and create libmist.dll,
 libclearlooks.dll under windows?

Yes I have done that a year ago or so, I compiled and used clearlooks
under Windows using mingw.

 Libtool generates warnings saying that the shared libraries for gtk, pango,
 etc.. are not found.  Indeed, there are only static libraries.

True, libtool fails. Since usually I compile by hand I never use
libtool, and therefore I didn't bother finding out why libtool failed.
Instead, I manually adjusted the failed compile/link command. As far
as I remember I just did something like gcc all object files -o
libclearlooks.dll or something like that. If you really want to know
what exact command I used I can compile (find out) it again.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: FW: compiling gtk-engines under mingw

2007-11-11 Thread control H
 Thank you for suggesting that.  I finally got it to compile after realizing
 that I was missing the 'dlltool' utility found under the 'binutils' package
 of mingw.

 This was key to having libtool create the DLLs.  Otherwise it simply was
 creating archived library packages.

That's funny, when my compiling clearlooks failed I had dlltool
installed, but it didn't work. Did you do something else in addition?
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Building and packaging for Windows - theme?

2007-11-05 Thread control H
  You copied some mingw dlls? That doesn't sound right.

 mingwm10.dll is usually required for thread support.

Are you sure about that? As far as I understood mingw dll's are only
used during compile time, the result should be completely independant
on mingw or other unixish help dll's.

I've compiled my linux gtk app using mingw. I've also installed ldd.
Let's run this on my mingw compiled exe:

$ ldd ./foo.exe
ntdll.dll = ntdll.dll (0x7c90)
kernel32.dll = C:\WINDOWS\system32\kernel32.dll (0x7c80)
libglib-2.0-0.dll = c:\mingw\bin\libglib-2.0-0.dll (0x1000)
iconv.dll = c:\mingw\bin\iconv.dll (0x54)
MSVCRT.dll = C:\WINDOWS\system32\MSVCRT.dll (0x77be)
intl.dll = c:\mingw\bin\intl.dll (0x3d)
ADVAPI32.DLL = C:\WINDOWS\system32\ADVAPI32.DLL (0x77f4)
RPCRT4.dll = C:\WINDOWS\system32\RPCRT4.dll (0x77da)
OLE32.dll = C:\WINDOWS\system32\OLE32.dll (0x774a)
GDI32.dll = C:\WINDOWS\system32\GDI32.dll (0x77e4)
USER32.dll = C:\WINDOWS\system32\USER32.dll (0x77d1)
SHELL32.DLL = C:\WINDOWS\system32\SHELL32.DLL (0x7c9c)
SHLWAPI.dll = C:\WINDOWS\system32\SHLWAPI.dll (0x77e9)
WS2_32.DLL = C:\WINDOWS\system32\WS2_32.DLL (0x71a3)
WS2HELP.dll = C:\WINDOWS\system32\WS2HELP.dll (0x71a2)
libgthread-2.0-0.dll = c:\mingw\bin\libgthread-2.0-0.dll (0x3e)
LIBMYSQL.dll = c:\Program Files\MySQL\MySQL Server
5.0\bin\LIBMYSQL.dll (0x62)
WSOCK32.dll = C:\WINDOWS\system32\WSOCK32.dll (0x71a5)

As you can see it's threaded (libgthread) but independant on custom dll's.

So your app should work by having all relevant gtk dll's in PATH.

regards,
CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Building and packaging for Windows - theme?

2007-11-05 Thread control H
 $ ldd ./foo.exe
 ntdll.dll = ntdll.dll (0x7c90)
 kernel32.dll = C:\WINDOWS\system32\kernel32.dll (0x7c80)
 libglib-2.0-0.dll = c:\mingw\bin\libglib-2.0-0.dll (0x1000)
 iconv.dll = c:\mingw\bin\iconv.dll (0x54)
 MSVCRT.dll = C:\WINDOWS\system32\MSVCRT.dll (0x77be)
 intl.dll = c:\mingw\bin\intl.dll (0x3d)
 ADVAPI32.DLL = C:\WINDOWS\system32\ADVAPI32.DLL (0x77f4)
 RPCRT4.dll = C:\WINDOWS\system32\RPCRT4.dll (0x77da)
 OLE32.dll = C:\WINDOWS\system32\OLE32.dll (0x774a)
 GDI32.dll = C:\WINDOWS\system32\GDI32.dll (0x77e4)
 USER32.dll = C:\WINDOWS\system32\USER32.dll (0x77d1)
 SHELL32.DLL = C:\WINDOWS\system32\SHELL32.DLL (0x7c9c)
 SHLWAPI.dll = C:\WINDOWS\system32\SHLWAPI.dll (0x77e9)
 WS2_32.DLL = C:\WINDOWS\system32\WS2_32.DLL (0x71a3)
 WS2HELP.dll = C:\WINDOWS\system32\WS2HELP.dll (0x71a2)
 libgthread-2.0-0.dll = c:\mingw\bin\libgthread-2.0-0.dll (0x3e)
 LIBMYSQL.dll = c:\Program Files\MySQL\MySQL Server
 5.0\bin\LIBMYSQL.dll (0x62)
 WSOCK32.dll = C:\WINDOWS\system32\WSOCK32.dll (0x71a5)

 As you can see it's threaded (libgthread) but independant on custom dll's.

 So your app should work by having all relevant gtk dll's in PATH.

I forgot to say, the above example is for a glib dependant program
which in addition uses mysql. So for a gtk program you'll see many
more dll's, but not some mingw dll.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Menu with stuff in multiple columns?

2007-11-05 Thread control H
On 11/5/07, Reed Hedges [EMAIL PROTECTED] wrote:

 I have a large list of small names I want to display in a popup menu.  Is 
 there
 any way to tell GTK to allow more than one column, rather than having the 
 popup
 menu fill the screen from top to bottom?

Yes there is. For example, I've made once some calendar like thing
where you can select a month from a 2 columns menu.

Untested code, but should work:

  GtkWidget *combo;
  GtkListStore *store;
  GtkTreeIter iter;
  GtkCellRenderer *renderer;
  int i;
  char**p;
  char*months[]={jan,jul,feb,aug,mar,sep,apr,oct,may,
  nov,jun,dec,NULL};

  store=gtk_list_store_new(1,G_TYPE_STRING);
  combo=gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
  renderer=gtk_cell_renderer_text_new();
  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(combo),renderer,TRUE);
  gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo),renderer,
 text,0,NULL);
  gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (combo),2);

  for(p=months;*p;p++){
gtk_list_store_append(store,iter);
gtk_list_store_set(store,iter,0,*p,-1);
  }

  gtk_combo_box_set_active(GTK_COMBO_BOX(combo),0);
  g_object_unref(store);

Good luck.
CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: cairo canvas

2007-09-24 Thread control H
 Yes there are quite some canvases based on gtk/cairo out there, some
 more mature than the other ones, for a table of comparison look at
 [1].

 [1] 
 http://live.gnome.org/ProjectRidley/CanvasOverview?highlight=%28canvas%29#Features

 I would suggest you to have a look at goocanvas, it comes with a lot
 of really cool and useful examples and a complete reference manual.

Yes I saw this one, but since the last version is more than a year
old, I got the impression it's not really develloped anymore. Well,
maybe instead of premature it's just perfect! :) Anyway, thanks for
your link.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


cairo canvas

2007-09-23 Thread control H
hello,

My app can draw lines, circles etc. on a gtk drawing area (cairo
based). However, later on I want to be able to pick up the line,
circle etc. and move them around the canvas or resize them. So in
effect I want to be able to put graphical objects on the drawing area,
and later be able to manipulate them. Like in inkscape.

After quite some googling I didn't find a standard method to do this;
there are different projects being develloped but all premature.

Does anybody have suggestions what I could best use?

In addition, I'm interested in how such a canvas could be implemented.
However I have no idea, and I couldn't find some gtk/cairo canvas
implementation HOWTO. So any info about that is welcome as well!

Thanks all for suggestions.

regards,
CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


stock icons RTL

2007-08-23 Thread control H
When I use gtk stock icons but change the orientation to RTL, the size
changes a little bit (at least for GTK_STOCK_MEDIA_PLAY). Is this
normal behaviour or a bug?

Regards,
CH
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: cairo pixmap

2007-05-23 Thread control H
Ah, I just found out the solution is trivial.

GdkPixmap *pixmap;

/* Create a new backing pixmap of the appropriate size */
static gint
configure_event (GtkWidget *widget, GdkEventConfigure *event)
{
  cairo_t *cr;

 if (pixmap)
gdk_pixmap_unref(pixmap);

  pixmap = gdk_pixmap_new(widget-window,
  widget-allocation.width,
  widget-allocation.height,
  -1);

  cr = gdk_cairo_create (pixmap);
  /* do your drawing here */
  cairo_destroy (cr);

  return TRUE;
}


static gint
expose_event_cb (GtkWidget *widget, GdkEventExpose *event)
{
  /* copy relevant part of pixmap back to screen */
  gdk_draw_pixmap(widget-window,
  widget-style-fg_gc[GTK_WIDGET_STATE (widget)],
  pixmap,
  event-area.x, event-area.y,
  event-area.x, event-area.y,
  event-area.width, event-area.height);

  return FALSE;
}
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: cairo pixmap

2007-05-19 Thread control H
 The signal handler for the expose event is passed some parameters
 specifying which part of the screen has become invalidated. If you use
 these in a Cairo drawing mask, then redraw your canvas, it should be
 quite fast, as Cairo will ignore all operations to areas outside the
 mask.

But this means -if I understand correctly- that I still have to redraw
from scratch, be it not the complete drawing area but only the
invalidated part. Therefore, it will still be slower than in my old
GDK based situation, especially when the to be drawn picture becomes
more complex (which in my situation is the case).

Do you/does anybody know what the technical reason is why cairo
contexts fail outside the expose signal? I'm just curious.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


label line wrap en resize

2007-01-29 Thread control H
Hi,

does anyone know why when resizing the window, a label doesn't get
adjusted/updated? I mean, when you have a label and use
gtk_label_set_line_wrap(GTK_LABEL(label),TRUE) I would expect that a
line of text gets rewrapped to fit the new situation.

When I replace the label with say a button, I can see that it gets the
new space allocated (the button size changes when resizing the
window).

cheers
c.h.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Switching theme

2006-12-20 Thread control H
hi,

another example of runtime changing the theme can be found in The
Widget Factory, see http://www.stellingwerff.com/?page_id=10

The source is straight forward.



On 12/19/06, Madhusudan E [EMAIL PROTECTED] wrote:
 Hi...
 Probably u can even use existing applications on net to change themes on the
 fly
 http://www.muhri.net/nav.php3?node=gts
 download gtk-theme-switch
 Hope this helps.
 Rgds,
 Madhusudan E


 This e-mail and attachments contain confidential information from HUAWEI,
 which is intended only for the person or entity whose address is listed
 above. Any use of the information contained herein in any way (including,
 but not limited to, total or partial disclosure, reproduction, or
 dissemination) by persons other than the intended recipient's) is
 prohibited. If you receive this e-mail in error, please notify the sender by
 phone or email immediately and delete it!

 -Original Message-
 From: Paolo Franzetti [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, December 19, 2006 1:41 PM
 To: Madhusudan E
 Subject: Re: Switching theme

 Madhusudan E wrote:
  Hi,
  On selecting the theme,
  Use, say   gtk_rc_parse(/home/Madhu/gtk/Themes/AquaX/gtk-2.0/gtkrc);
  Then reset the window rc styles using gtk_widget_reset_rc_styles(window);
  Then reparse all...
gtk_rc_reparse_all();
  I hope this helps
  Rgds,
  Madhusudan
 
 

 Thanks for the suggestion.

 It almost works ...

 The first time I switch theme it works (a part for the menu from
 which I launch the command); then it works no more, or it works
 partially (some widgets updated, some not).

 I am using libglade to build my application; it could be a problem?

 Thanks again,
 Paolo


 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: A question about deprecated widget

2006-12-20 Thread control H
Hi,

A year ago I posted my comments about the GtkComboBox to this list,
this link shows the thread:
http://marc.theaimsgroup.com/?t=11324387691r=1w=2

Still, the GtkComboBox is the biggest problem in my application. I'm
sorry to say, but the combo control is both ugly and clumsy. But as
you can read in the thread, it won't be changed soon if at all because
it's been designed this way to follow Gtk policies and UI
consistency.

Paul Pogonyshev:
 Not having such a limit is a conscious decision by GTK+ team.  Not a
 missed feature.

It IS a missed feature. Because:

1. A too big list overlaps other widgets containing useful
information. Suppose you have a form with lots of labels and entries
like a database frontend. Usually you fill in the fields from top to
bottom. So if the combobox is nearer the bottom of the screen than
top, the popuplist will popup above the gtkcombobox, therefore your
just filled in entries become invisible. This is bad and at the moment
not controllable. Being able to limit the number of rows in the
scrolled popup is useful because now it will be placed below the
gtkcombobox widget itself. Replacing gtkcombobox with a treeview is
often not suitable, see below.

2. It's ugly. This widget crosses the line where visual apealingness
becomes more important than sticking to design philosophies. The fact
that every now and then someone posts a question about setting the
maximum number of rows shows that there clearly is demand for such
features. In addition, apps like gnumeric show they come up with some
alternative selection (like the font selection in gnumeric) where the
natural choice would be GtkComboBox.

3. Gtk+ current behaviour is inconsistent. The fact that
GtkEntryCompletion does not take as much space a possible is in my
opinion contradicting to GtkComboBox. So why doesn't completion take
as much screen space as possible?


 I'm not opposed to GtkTreeView, however what I want to have is a widget
 that displays a list only durring selection and (sometimes) has a single
 editable entry field, visible all of the time, just like GtkCombo did.

The best alternative would be GtkTreeView, but in so many places it
just doesn't fit because it takes too much space, like a fontselection
in a toolbar. So you could make it into a separate window which opens
when you push the selector button (like GtkFontButton). This makes
selection not really economic: first, you have to click selector
button to open the treeview window, then you select, and then yet
another click to close the treeview window. With a proper GtkComboBox
one click could suffice.

 And please, stop taking it personally, cause that makes me take it
 personally too.

I understand :)

And please don't take my comments personally, I'm not trying to piss
people off or being a pessimist. Gtk+ as it is now is very
good. Having a decent combobox would make it really good for me.


BTW: appears-as-list is a read-only style property but you can force
an individual GtkComboBox to set this property like this:

combo_box=gtk_combo_box_new_text();
gtk_rc_parse_string(style \list-combo-style\ {\n
GtkComboBox::appears-as-list=1}
widget \*.list-combo\ style 
\list-combo-style\);
gtk_widget_set_name(combo,list-combo);
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: textview scrolling fails

2006-12-14 Thread control H
Thanks a lot Michael,

that turned out to be the problem! Man did I spent much time on this
problem. Wonder why I used the _add_with_viewport() call anyway.

Anyway,
thanks a lot.

^H

On 12/14/06, Michael 'Mickey' Lauer [EMAIL PROTECTED] wrote:
 control H wrote:
  This search does find what I'm searching: on the console the match
  is printed, and also the tag is aplied to the textbuffer at the found
  section. But no scrolling occurs.

 Just a shot in the dark, but I once had the same problem and it turned
 out I accidantly added the TreeView to a ScrolledWindow with
 add_with_viewport(), which breaks some of the scrolling logics.
 TreeView needs to be added to a ScrolledWindow without an additional
 viewport, since it has a direct interface for using GtkAdjustment.

 Regards,

 :M:
 --
 Michael 'Mickey' Lauer | IT-Freelancer | http://www.vanille-media.de

 ___
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: gtkentry grab-focus

2006-12-04 Thread control H
For those interested, here's a way to get the desired result. The
source of gtkentry.c shows that if the entry receives a click, it
resets the selection to the current position of the cursor. Hence the
following button-press-event callback works:

static gboolean event_cb(GtkWidget*w,GdkEvent*event,gpointer p)
{
   if(!GTK_WIDGET_HAS_FOCUS(w)){
gtk_widget_grab_focus(w);
return TRUE;
  }

  return FALSE;
}
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


gtkentry grab-focus

2006-11-29 Thread control H
Say you have some widgets, one of them being a gtkentry. When you tab
through the widgets towards the entry, its text will be selected when
the entry gets focus. I would like that behaviour also when I just
click the text in the entry.

I connect to the grab-focus signal where I select all available text
in the callback function. But as soon as I click some text in the
widget, the text gets deselected as soon as I release the left mouse
button press.

Which signals should I connect to to get the desired result?

thanks in advance.

ps Why don't I get the move-cursor signal when I change the cursor
position in the entry by clicking with the mouse?
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


changing pango attributes

2006-04-14 Thread control H
Hi,

I've made a gtklabel with an underline attribute:
pango_attr_underline_new(PANGO_UNDERLINE_ERROR);
The label shows up fine with this attribtute.

However, later on I want to dynamically change this attribute
to PANGO_UNDERLINE_NONE.
The code basically looks like this:

attrlist=gtk_label_get_attributes(label);
iter=pango_attr_list_get_iterator(attrlist);

do{
  attribute=pango_attr_iterator_get(iter,PANGO_ATTR_UNDERLINE);
}while(pango_attr_iterator_next(iter));

Now, the problem is this:
attribute=pango_attr_iterator_get(iter,PANGO_ATTR_UNDERLINE);
doesn't really give me the attribute, does it? After all,

typedef struct {
  const PangoAttrClass *klass;
  guint start_index;/* in bytes */
  guint end_index;/* in bytes. The character at this index is not included */
} PangoAttribute;

typedef struct {
  PangoAttrType type;
  PangoAttribute * (*copy) (const PangoAttribute *attr);
  void (*destroy) (PangoAttribute *attr);
  gboolean (*equal) (const PangoAttribute *attr1, const
PangoAttribute *attr2);
} PangoAttrClass;

and in this last struct I only can acces the type, but not it's values.
I'm looking for a way to get the struct used for

typedef struct {
  PangoAttribute attr;
  int value;
} PangoAttrInt;

so that I can set the int value to PANGO_UNDERLINE_NONE.
I have studied the pango API a lot, but can't find a way to get
access to the underline attribute itself. Am I missing something
simple here?

Thanks in advance for your help.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


tab stops in gtkcellrenderertext

2006-03-14 Thread control H
Hi,

I try to change the default tab stops setting in a gtkcellrenderertext.
However, I can't find a possibility to do this. There isn't for example
a pango property that does the job. And I can't find another link to
the underlying pango structures.

Any ideas on this?
Thanks in advance.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


pack cells vertically

2006-01-10 Thread control H
Hi all,

I've made some treeview and I want to pack some cellrenderers vertically
into GtkCellLayout. Thus, I'm looking for some anologue of
gtk_cell_layout_pack_end and friends, but in vertical direction.
Is that possible? Or is it possible to merge two adjecent rows into one?

I've also been trying iconview things, but that's not exactly what
I want.

Thanks for your help.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: combo rant

2005-11-25 Thread control H
[snip]

 To be fair, I've worked with combo controls from at least 4 different
 widget sets and they all were horrible.  Win32, GTK, Web, Borland, Java,
 they all suck.  I think as a control, the combo control is just a bad
 concept.

I'm not that negative about a combo control. After all, a good combo like
the Windows one lets me select the item I want quickly and simple (enough),
and in an acceptable style.

 I will probably create my own combo type control in addition to the
 native Win32/GTK combo box controls.  It will basically be a text field
 with a button directly to the right of it.  When the button is clicked a
 separate window will be opened with a grid inside it.  This allows me to
 bypass all the horrible problems with combos on each platform.  It will
 be a little slower for a user to use than a combo, but the ease of use
 should be better since the user/developer can resize the grid, etc if
 needed.

When you have a working prototype please let me know, I'd like to see it
for sure.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: combo rant

2005-11-25 Thread control H
 Well, I must admit that I haven't used Windows more than occasionaly for the
 last three or four years, but the last time I checked, Windows combo box was
 much _worse_ than GTK+'s, in my opinion.  You would often get a five-line
 combo where you'd have to scroll like hell to skip all those 200 items to
 get to the one you want.

Ok it certainly sucks when you have to scroll those 200 items within a five-line
combo. But that's part of the programmers job I think. At least you are able
to force a five-line combo on Windows! And that's what I miss. A function
where you can scale such things, as I stated in my original email.

 I'm not saying GTK+'s combo is perfect, but I think it is generally better
 than anything else I've seen.  At least it always uses all the screen space
 it has.

But this is one of my other objections: it merely _tries_ to use all the screen
space available. It draws the menu layout, but without all items: you have
to scroll them in if current selection item is near the beginning, using those
scroll arrows. It's not the most economic handling of a selection. After all,
if you have no more items than would fit on the screen, it could have shown
the menu compleet, ie, showing all items at once (but would of course
require that
the current selected item may be located at a different height than the combo
widget itself, but tha'ts no problem to me. I even think that should
be configurable).

 The main problem, to me, is when the combo is too close to the screen edge,
 especially to the bottom one.  Then you can easily get a too small popup.

I'm happy you agree on this one :)

 And yes, I agree that a real scroll bar could be helpful.  While you should
 avoid presenting the user with a hundreds-items combo box in the first
 place, it doesn't mean GTK+ should make such combos even less usable.

I agree completely. Thanks for you comments.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


combo rant

2005-11-23 Thread control H
[I already posted this to the gtk-list, I'm not sure which list I should use]

I'll start with apologies for upcoming rant. In general I like Gtk:
I'm programming with it for a couple of years now and it's easy to
learn, reasonably fast, has many bindings, runs on windows, and is
highly themable. However, an ever returning frustration for me is the
lack of a decent combobox. With every release of Gtk I hoped for a
better combo, but to be fair, GtkCombo is in some ways still a better
option than GtkComboBox.

I notice several problems, that don't seem to be solved soon, if at
all. Since I don't understand the inner workings of Gtk and I also
don't have time for that, I'll write to this list with the hope that
something will change, or at least that I know _why_ it is the way it
is.

1. Could someone please explain to me why we don't have a gtkcombobox
   widget that's comparable with the Windows one or QT's combo? Please
   give me at least a good reason! I'll address some specific things
   now:

2. Popup behaviour. Lots about this is already in this thread:
   http://mail.gnome.org/archives/gtk-devel-list/2005-March/msg00149.html
   I can only agree. For me, the most important things are the
   direction of the popup, and the size. Because of screenspace menus
   are sometimes poped up above the widget, sometimes below, therefore
   covering information you just filled in those widgets. A function
   where you can specify the popup behaviour would be nice, eg
   gtk_combo_box_set_popup_direction(DOWN) or
   gtk_combo_box_set_popup_direction(SELECTED) for current behaviour.

   When I make a multi column combo it already behaves much more the
   way I'd like to.

3. Default mode (so no apears-as-list mode) pops up the menu with
   the current selected item at the location (height) of the widget
   itself. If an item from somewhere of the midle was chosen, the menu
   appears both above and below the widget. If you don't know what I
   mean, start gimp and save something. The filetype (extension)
   selection shows this problem. Also, when the active item was near
   the beginning, you already see the full height of menu list, with
   some scrollbar-like thing on top and bottom. Not only does that
   look bad, it's also quite useless, because you'll almost by
   definition want to scroll down, therefore filling the menu; it
   could have shown all items imediately. When the menu is filled with
   all options, these scroll things disappear. If you have so many
   options that they can't fit on the screen, these scroll things
   remain.

   Since these scroll things are not a scrollbar, you can't quickly
   drag the bar and go quickly to the item you're iterested in. So,
   why not make
   A) a scrollbar like in treeview, or
   B) make long items branch like in windows

4. In apears-as-list mode, again te popup direction and size are a
   problem. This time we have a scrollbar however, so a function where
   you can specify the maximum number of items before forcing a
   scrollbar would be nice. Just like in html. I think this really
   should be possible. Others want this as well:
   http://mail.gnome.org/archives/gtk-app-devel-list/2004-June/msg00342.html
   Unfortunately, nobody gave a reaction to this. I really hope at
   least someone will share his thaughts about this.

   I know I know, the Gnome Human Interface Guidelines say that with
   many items a treeview selection may be a better solution, but I
   disagree. There are just too many situations where you want a
   single row widget where you can select from, instead of a space
   consuming treeview. Even the big Gtk examples are suffering from
   this problem: I already mentioned Gimp, but also Dia (realy
   obvious), Gnumeric (has its own combo, eg the font selector) and
   gftp (still uses the deprecated GtkCombo).

   On with the problems:

   A When you click in the textbox (and not the arrow), you have to
 keep mouse button pressed
   B When you click the double arrow and just start typing for
 completion you have te type enter twice. In my opinion one time
 should be enough, even in the situation where there's no match
 (just return currect selection)
   C The width is not optimal. When showing the list it should use the
 width of the biggest item, or provide a horizontal scrollbar if
 necesary as well

OK, this is a lot of text for maybe not-so-important details. But
these details are annoying. And I suspect I'm not the only one. Please
give some reaction and possible solutions.

Thanks a lot.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list