Re: GTK+ CVS access FAQ out of date

2007-04-14 Thread Claudio Saavedra
Francesco,

El Mon, 09-04-2007 a las 16:08 +0200, Francesco Montorsi escribió:
 Hi,
the only document I could find for checking out the CVS repo of GTK+ 
 is this:
 
 http://www.gtk.org/faq/#AEN325
 
 and it seems out of date since if I follow the istructions I get:
 
 [EMAIL PROTECTED]:~/work$ CVSROOT=':pserver:[EMAIL PROTECTED]:/cvs/gnome'
 
 [EMAIL PROTECTED]:~/work$ export CVSROOT
 
 [EMAIL PROTECTED]:~/work$ cvs login
 Logging in to :pserver:[EMAIL PROTECTED]:2401/cvs/gnome
 CVS password:
 Unknown host anoncvs.gnome.org.
 
 [EMAIL PROTECTED]:~/work$ cvs -z3 get gtk+
 Unknown host anoncvs.gnome.org.
 
 What is the up2date URL for getting the GTK+ CVS repo?
 

As others have pointed out, GNOME uses SVN now, instead of CVS. As I
know there is people in gtk-devel-list@ currently updating the GTK+
webpages, I've added this list to the CC, with the hope we will see a
patch for the webpage (which you could prepare yourself, if you have the
time :-)

Claudio

-- 
Claudio Saavedra [EMAIL PROTECTED]

___
gtk-app-devel-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

button_press_event signal in GtkCellRendererToggle

2007-04-14 Thread Matí­as Alejandro Torres
Hi,

How can i add a GtkCellRendererToggle the button_press_event signal 
without making a new widget?

I have a GtkTreeView with a CheckBox (GtkCellRendererToggle) in it and I 
want the user modify its value by clicking on it. How can I do this?

Thanks in advance. Matias.

___
gtk-app-devel-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: How do you develop you GTK code?

2007-04-14 Thread Robert Pearce
Hi Diogo,

On Fri, 13 Apr 2007 23:57:12 -0300 you wrote:
 I am curious about it and really want to know: How do you develop your GTK
 codes?

Mostly by hand.

Before coming to GTK I had done some GUI apps on Windows with Borland C++ 
Builder, which is quite nice for drawing fixed size dialogs with a small 
selection of different widgets. I had also briefly tried customizing a GUI 
written in Tcl/Tk (and later Python/Tkinter) with no RAD support.

My first few GTK apps were hand written using tables of widgets. It does make 
it harder to visualize what you're creating as you go, but anyone that's done 
HTML will be accustomed to how tables work. If you draw your GUI out on paper, 
it's really not hard to code from that.

I tried Glade more recently, thinking it would be easier, like the Borland 
tool. Well, it does work as a drawing tool, and I guess if you use libglade and 
don't care how it ends up being implemented then it isn't too bad. But the code 
generator (now deprecated) produces something truly horrid.

The other thing to bear in mind is this:
  If you have a row or column of similar widgets, say buttons, then a tool like 
Glade or BCB requires you to place every one individually. Writing the code by 
hand lets you do:
 for ( cc=0; cc10; cc++ )
{
 MyButtons[cc] = gtk_button_new (..);
 gtk_box_pack_start (  );
}

This is even more relevant if the number of buttons isn't known at design time!
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread David J. Andruczyk

 On Fri, 13 Apr 2007 23:57:12 -0300 you wrote:
  I am curious about it and really want to know: How
 do you develop your GTK
  codes?
 

I do a combination of by hand and via glade.  Glade
has several faults, the one being not being able to
bind arbritrary information to widgets in the
designer, which I doun't think would be possible
anyways, though QT's designer offers something along
those lines, as subclassing existing widgets is about
1000x easier than doing it in GTK+.  So for my niche
use, in order to be able to reuse signal handlers, and
not end up with one handler per control, I have glue
code in place that on initialization of the
application it binds additional data per applicable
widget  which the signal handlers use to take
appropriate action.
so my code makes very extensive use of
g_object_set_data(), and g_object_get_data().

Thus for all my buttons I have one handler
std_button_handler(), and in my code I assign an enum
to each control (i.e.
g_object_set_data(G_OBJECT(widget), handler
GINT_TO_POINTER(SOME_ENUM_NAME));
 so that when that handler is called,  it's is handled
in a case statement inside that handler.



-- David J. Andruczyk

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread jcupitt
On 4/14/07, Robert Pearce [EMAIL PROTECTED] wrote:
 The other thing to bear in mind is this:
   If you have a row or column of similar widgets, say buttons, then a tool 
 like Glade or BCB requires you to place every one individually. Writing the 
 code by hand lets you do:
  for ( cc=0; cc10; cc++ )
 {
  MyButtons[cc] = gtk_button_new (..);
  gtk_box_pack_start (  );
 }

 This is even more relevant if the number of buttons isn't known at design 
 time!

This is a good point. In my app I have functions like (an example)
build_label_entry() which makes a GtkLabel + GtkEntry with layout
following the HIG guidelines. Once you have a few of these set up,
building a dialog from code is really easy. Plus now your layout is
just in one function, so you can change the layout of all label +
entry pairs by just altering a couple of lines of code.

It also depends on the kind of program you are writing. Mine has a
relatively 'small' GUI (most of the code is in the back end) so Glade
would not save me a significant amount of time.

Having said that, most people tell me it has an awful interface, so
maybe you shouldn't listen to me.

John
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread Paul Davis
On Sat, 2007-04-14 at 02:10 -0700, David J. Andruczyk wrote:
 though QT's designer offers something along
 those lines, as subclassing existing widgets is about
 1000x easier than doing it in GTK+.  

if you opted to work in the same object oriented language that Qt uses,
and just used gtkmm, you would find that subclassing existing widgets is
about 1000x easier than doing it in GTK+.


___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread Richard Boaz

Hi,

Like the others posting so far, I do not use any IDE to program my gtk 
+ app.  I had a quick look once upon a time, but quickly determined  
that if you want or require to change the code that is automatically  
generated, you might as well just write your own instead of trying to  
get in the deep-end of someone else's ideas about how this should be  
done.


This subject came up a little while ago as well.  Then, the poster  
found that writing your own code was a big pain since this required  
coming up with a variable name for every widget needing to be  
created.  But I didn't and still don't understand this complaint.   
When creating widgets, two types of widgets are required, one which  
never again needs to be accessed (e.g., a static label (don't even  
start talking about dynamic labels...:) ), and the other requiring  
accessing (e.g., an entry area taking input from the user).  For  
those widgets not needing to be accessed, it is not necessary to  
provide a unique variable name, rather, you can re-use the same  
variable over and over since once a widget is registered/packed/ 
whatever, you need not reference it again.


To illustrate, the following snippet generates two buttons and an  
entry area with a label laid out simply in a vertical container:


vbox = gtk_vbox_new(FALSE, 0);

button = gtk_button_new_with_label(TRACES);
	g_signal_connect((button), clicked, G_CALLBACK(buttonCallback),  
enums[TRACES]);

gtk_size_group_add_widget(size_group, button);
gtk_container_add(GTK_CONTAINER (vbox), button);
strcpy(toolTip, Open Trace files);
gtk_tooltips_set_tip(GTK_TOOLTIPS (tips), button, toolTip, toolTip);

button = gtk_button_new_with_label(Next);
	g_signal_connect((button), clicked, G_CALLBACK(nextTrace), enums 
[NEXT]);

gtk_size_group_add_widget(size_group, button);
gtk_container_add(GTK_CONTAINER (vbox), button);
strcpy(toolTip, Display NEXT Screen of Trace Files);
gtk_tooltips_set_tip(GTK_TOOLTIPS (tips), button, toolTip, toolTip);

hbox = gtk_hbox_new(FALSE, 0);
label = gtk_label_new(min:);
MTfixed[MIN] = entry = gtk_entry_new();
	g_signal_connect(MTfixed[MIN], activate, G_CALLBACK(reMag), OV 
[MAGNIFYSCR]);

gtk_entry_set_width_chars(GTK_ENTRY (entry, 5);
gtk_container_add(GTK_CONTAINER (hbox), label);
gtk_container_add(GTK_CONTAINER (hbox), entry);
gtk_container_add(GTK_CONTAINER (vbox), hbox);
	strcpy(toolTip, MIN: define as absolute (e.g., 1000) or as  
Percentage of MAX/MIN Mean (e.g., 50%) (BLANK = Real MIN));

gtk_tooltips_set_tip(GTK_TOOLTIPS (tips), entry, toolTip, toolTip);

As another poster pointed out, this repetitive type of widget  
creation can be contained within its own routine.  But basically,  
once you've got the various types of widgets and layouts you require,  
it is trivial to copy and paste the code over and over, only  
requiring the widget's creation details to be changed for each new  
instance.


The above snippet requires only that the entry area be uniquely named  
for later reference.  In my code, all widgets are globally defined as  
GtkWidget *, casting when- and wherever appropriate.  (Some purists  
might balk at global variables but I have no problem with globals  
which never change value over the entire life of a program,  
especially when they're widgets needed possibly anywhere.)  To handle  
the problem of having to name so many widgets nonetheless, adopt a  
simple and shorthand naming convention you can immediately recognize,  
deduce, and even guess which makes sense somehow to the program and  
their usage.  As well, arrays of widgets can be very helpful here.


And like another poster, I highly recommend attaching as few  
callbacks as possible to the widgets.  Like he does, as can be seen  
above, each button is attached to the same callback with an enum  
value passed to the callback routine.  Once called, case statements  
handle each button's differing requirements.  (Unlike how he does it,  
however, I do this more directly in the signal connection itself;  
either method works though depending on exact requirements, using  
g_object_*_data() may be more appropriate.)  In general, try to  
attach like widgets to the same callback.  In practice this won't be  
universal, some callbacks demand their own routine; the point is,  
maintaining code in the future is always made easier when the number  
of callbacks is minimized to the greatest extent possible.


And good luck,

richard___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread Tristan Van Berkom
On Sat, 2007-04-14 at 15:00 +0200, Richard Boaz wrote:
 Hi,
 
 
 Like the others posting so far, I do not use any IDE to program my gtk
 + app.  I had a quick look once upon a time, but quickly determined
 that if you want or require to change the code that is automatically
 generated, you might as well just write your own instead of trying to
 get in the deep-end of someone else's ideas about how this should be
 done.

Right, first of all I dont think its correct to suppose that generated
code is anyone's idea of how it should be done, generated code is
a mechanical spew of code that works and should NEVER be used as
an example or reference implementation.

My opinions about glade are biased because I maintain glade, but my
opinion anyway: glade is not an IDE, its a user interface designer -
adding application data and modeling of that data is not a desirable
thing, you want to keep your user interface in one corner and your
data in another - not mix them up in one big pot of spaghetti code.

If you have concerns about dynamic portions of your interface, I agree
they should mostly be done by hand, but wait - glade can still help you
here, say you have a hbox with a label and an entry as was previously
described, you can always put one instance of that in your glade file
and loop like so:

for (i to ... dataentries) {
xml = glade_xml_new (...dataentryitem...);

widget = glade_xml_get_widget (xml, dataentryitem);

/* ... pack into your program somewhere by hand ... */

g_object_unref (xml);
}

This might or might not make sence depending on the application, but
it does have the advantage of keeping your UI dynamic, if you need to
add an item/label/separator or whatever to that subhierarchy than you
dont need to edit or compile code to update your interface.

I also believe that following a template design might be good
for a dumb little CLI wrapper in a GUI - but if you are really
developing an industry grade application then please use your
brain and understand the code - using libglade for your interface
is a good thing because it defers all the repetitive rigid GUI
building code to a library that takes care of it for you - it
also allows you to use YOUR OWN design that is appropriate for
your own application, either by loading dialogs on the fly or
at initialization time - keeping pointers around for the widgets that
you need referenced by name, or by using lookup_widget() types of
paradigms - point being - you are the author of your application
and the sources are in your hands, you should be able to organize
your code in a way that suits the application at hand.

For a good reference implementation - I've repeatedly been pointing
people in the direction of the DevHelp sources, since IMO they use
a sound OO design and a very practical use of libglade (its also
very simple code to understand).

Just my 2 cents, cheers,
 -Tristan



___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread David J. Andruczyk

In the case of my app (MegaTunix) the app gui is 100%
glade, though some widget are built manually and
placed into of a glade designed object as like others
have said,  they are dynamic and not predictable until
during runtime.

Due to the niche nature of my app, and the multitude
of controls (well over 1500), I had to extend things
as glade didn't do enough,  but it worked and is
fairly extensible even if it's design has numerous
flaws...

http://megatunix.sourceforge.net


-- David J. Andruczyk

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread David J. Andruczyk

I do pretty much as you, regarding variable naming, 
unneeded vars (i.e. mainly layout containers and
static labels in glade), are just left to be named via
glade's default naming system.  Since my app
(megatunix) is 100% built in glade,  pretty much evey
widget there that require signal handlers has them
defined IN GLADE,  but on app initialization when the
gui is created,  I have extra config files I built,
that share a common naming scheme with the glade
files.  I wrote a .ini style parser and code that
traverses the weidget tree of each Gui tab, search for
those widget names in my .ini files.  if ti findsa
match, it runs some code that looks for custom
attributes I created and sets them on the widgets.
(things like signal handler enumerations, and other
simple and some very complex attributes.

NOTE: My app is very much a NICHE app, and is designed
to be modular as it has to adapt on runtime, and
statically defining all these attributes in code made
the code IMPOSSIBLE to be extensible. (megatunix
adapts to ECU firmware on startup using a minimalist
gui, and once it determines the ecu capability, it
ONLY loads specific Glade tabs that correspond to
controls valid for the device, hence my needs to be
able to define my extended attributes outside of the
application itself).

I also use the trick of a global hashtable to store
pointers to customized widgets, so they are easily
retrieved without having to use:
glade_xml_get_widget().  This is done because I want
to reference NON glade created widgets, and prefer to
rather just name one global definition of extern
GHashTable *dynamic_widgets; instead of a pile of
other externs.


In one of my simple apps (part of megatunix),  called
gaugedesigner,  this app is 100% glade, and I designed
it the same way as megatunix, defining all signal
handlers in the glade UI.  On app startup are init
functions that specifically retrieve widgets by name
to manipulate or bind additional data to them

tmp=glade_xml_get_widget(xml,save_gauge_menuitem);
gtk_widget_set_sensitive(tmp,FALSE);

tmp=glade_xml_get_widget(xml,save_as_menuitem);
gtk_widget_set_sensitive(tmp,FALSE);

g_object_set_data(G_OBJECT(glade_xml_get_widget(xml,precision_spin)),
handler,GINT_TO_POINTER(PRECISION));
   
g_object_set_data(G_OBJECT(glade_xml_get_widget(xml,value_xpos_spin)),
handler,GINT_TO_POINTER(VALUE_XPOS));
   
g_object_set_data(G_OBJECT(glade_xml_get_widget(xml,value_ypos_spin)),
handler,GINT_TO_POINTER(VALUE_YPOS));

and so on.


--- Richard Boaz [EMAIL PROTECTED] wrote:

 Hi,
 
 Like the others posting so far, I do not use any IDE
 to program my gtk 
 + app.  I had a quick look once upon a time, but
 quickly determined  
 that if you want or require to change the code that
 is automatically  
 generated, you might as well just write your own
 instead of trying to  
 get in the deep-end of someone else's ideas about
 how this should be  
 done.
 
 This subject came up a little while ago as well. 
 Then, the poster  
 found that writing your own code was a big pain
 since this required  
 coming up with a variable name for every widget
 needing to be  
 created.  But I didn't and still don't understand
 this complaint.   
 When creating widgets, two types of widgets are
 required, one which  
 never again needs to be accessed (e.g., a static
 label (don't even  
 start talking about dynamic labels...:) ), and the
 other requiring  
 accessing (e.g., an entry area taking input from the
 user).  For  
 those widgets not needing to be accessed, it is not
 necessary to  
 provide a unique variable name, rather, you can
 re-use the same  
 variable over and over since once a widget is
 registered/packed/ 
 whatever, you need not reference it again.
 
 To illustrate, the following snippet generates two
 buttons and an  
 entry area with a label laid out simply in a
 vertical container:
 
   vbox = gtk_vbox_new(FALSE, 0);
 
   button = gtk_button_new_with_label(TRACES);
   g_signal_connect((button), clicked,
 G_CALLBACK(buttonCallback),  
 enums[TRACES]);
   gtk_size_group_add_widget(size_group, button);
   gtk_container_add(GTK_CONTAINER (vbox), button);
   strcpy(toolTip, Open Trace files);
   gtk_tooltips_set_tip(GTK_TOOLTIPS (tips), button,
 toolTip, toolTip);
 
   button = gtk_button_new_with_label(Next);
   g_signal_connect((button), clicked,
 G_CALLBACK(nextTrace), enums 
 [NEXT]);
   gtk_size_group_add_widget(size_group, button);
   gtk_container_add(GTK_CONTAINER (vbox), button);
   strcpy(toolTip, Display NEXT Screen of Trace
 Files);
   gtk_tooltips_set_tip(GTK_TOOLTIPS (tips), button,
 toolTip, toolTip);
 
   hbox = gtk_hbox_new(FALSE, 0);
   label = gtk_label_new(min:);
   MTfixed[MIN] = entry = gtk_entry_new();
   g_signal_connect(MTfixed[MIN], activate,
 G_CALLBACK(reMag), OV 
 [MAGNIFYSCR]);
   gtk_entry_set_width_chars(GTK_ENTRY (entry, 5);
   gtk_container_add(GTK_CONTAINER (hbox), label);

calendar with Gtk+ 2.0

2007-04-14 Thread vicente garcia

Hi, I'm programming a GTK program with freepascal and MySQL. The application
must administer a Medical center and I need a calendar to show when the
patients must go to the doctor. I'm working with the widget GtkCalendar,
it's cool but I need something like this:
http://farm1.static.flickr.com/176/434960008_65ab81bc16_o.jpg

I need something that show me the weeks and the hours of the day that is
occupated the medical center. I think I can't do this with GtkCalendar.

Can somebody help me, please?

Thanks :)
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: calendar with Gtk+ 2.0

2007-04-14 Thread Andrew Sobala
vicente garcia wrote:
 Hi, I'm programming a GTK program with freepascal and MySQL. The 
 application
 must administer a Medical center and I need a calendar to show when the
 patients must go to the doctor. I'm working with the widget GtkCalendar,
 it's cool but I need something like this:
 http://farm1.static.flickr.com/176/434960008_65ab81bc16_o.jpg
 
 I need something that show me the weeks and the hours of the day that is
 occupated the medical center. I think I can't do this with GtkCalendar.
 
 Can somebody help me, please?

You'll have to write your own widget [1]. That said, check out the 
source code for Evolution and Dates [2], which both implement something 
like this. You might be able to steal their code :)

(The Dates code is likely to be simpler and less full of CORBA than 
Evolution.)

-- 
Andrew

[1] 
http://gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28 
and 
http://gnomejournal.org/article/36/writing-a-widget-using-cairo-and-gtk28-part-2
 
are good starting points.
[2] http://pimlico-project.org/dates.html
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: How do you develop you GTK code?

2007-04-14 Thread Diogo Ramos

Thank you for all your reply.
It's been really useful.
I am getting really good info about all of it. Not just the what use to
develop, but also about what technique to use.
For example, I use A LOT of variables to construct a simple dialog, but I
think it will be more sane to use just one or two, as mention by Richard
Boaz. Take a look at this part of my code: (don't mind for the names of the
variables, it's in my local language. And yes, I like to initialize
variables, always. :-) )

/***/
GtkWidget*
create_dialog_edit_disciplina_horario(void)
{

   GtkWidget *dialog = NULL;
   GtkWidget *vbox01 = NULL;
   GtkWidget *rotulo_codigo = NULL;
   GtkWidget *entrada_codigo = NULL;
   GtkWidget *rotulo_nome = NULL;
   GtkWidget *entrada_nome = NULL;
   GtkWidget *rotulo_ano = NULL;
   GtkWidget *spin_ano = NULL;
   GtkObject *spin_ano_adj = NULL;
   GtkWidget *rotulo_sem = NULL;
   GtkWidget *spin_sem = NULL;
   GtkObject *spin_sem_adj = NULL;

   GtkWidget *rotulo_escolhe_semestre = NULL;
   GtkWidget *cbox_escolhe_semestre = NULL;
   GtkWidget *arvore_dados = NULL;
   GtkTreeStore *armazena = NULL;

   GtkWidget *hbox01 = NULL;
   GtkWidget *hbox02 = NULL;
   GtkWidget *hbox03 = NULL;
   GtkWidget *hbox04 = NULL;
   GtkWidget *hbox05 = NULL;
[...]
/***/

Another good one I think I will use is the reduced number of callbacks.
Every dialog in my code, for example, has its own callback. I think its
going to be more clear if I group all of them at the same one.
And more ideas that I am not going to bother you about.
I am a little excited about the possibilities, I admit. ;-)

Well, getting back to the IDEs (or as mentioned by Tristan Berkom, User
interface  Designer), I am still thinking about it. I installed the new
version of Glade (was running glade-2, now running glade-3) and took a look
at the libglade. It seems to be a great idea, although I didn't really got
into it. Need more research by myself to understand how to use it.

What I am realizing is that if you want a specific GUI it's more convenient
to do it by hand but, if it's a general one, which will use the standard
widgets at the standard ways, the IDEs (or UIDs) happens to be a very good
idea.

Still a little confuse about what paradigm to use, I confess. But now with
more baggage to make my choice. :-)

Sincerely,

2007/4/14, Robert Pearce [EMAIL PROTECTED]:


On Sat, 14 Apr 2007 12:42:21 +0100 [EMAIL PROTECTED] wrote:

 Having said that, most people tell me it has an awful interface, so
 maybe you shouldn't listen to me.

If the sort of people who like most of what's out there think your
interface is awful then I'd probably think it's really nice. I'm
amazed at how ghastly most GUIs are. But then I think of computers as
tools for doing what I want them to do, not a display case for
avant-garde graphic design, so what would I know?
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list





--
Diogo F. S. Ramos
___
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: Selectively trapping keypresses

2007-04-14 Thread Jeffrey Ratcliffe
On 13/04/07, Jeffrey Ratcliffe [EMAIL PROTECTED] wrote:
 How do I check whether a Gtk2::Ex::Simple::List is being edited (when
 selectively trapping keypresses)?

 a. When the user presses enter, save the new data to a file

I'm being dim (serves me right for coding when I should be in bed).

row-changed will give me that.

I still can't see how to check whether a Gtk2::Ex::Simple::List is
being edited. Does it has something to do with custom cell renderers?

Jeff
___
gtk-perl-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list


Re: Selectively trapping keypresses

2007-04-14 Thread muppet

On Apr 14, 2007, at 8:39 AM, Jeffrey Ratcliffe wrote:

 On 13/04/07, Jeffrey Ratcliffe [EMAIL PROTECTED] wrote:
 How do I check whether a Gtk2::Ex::Simple::List is being edited (when
 selectively trapping keypresses)?

 a. When the user presses enter, save the new data to a file

 I'm being dim (serves me right for coding when I should be in bed).

 row-changed will give me that.

 I still can't see how to check whether a Gtk2::Ex::Simple::List is
 being edited. Does it has something to do with custom cell renderers?

In order to get that sort of stuff to work, you have to use the  
TreeView API.

The user does not edit a TreeView (which is what a SimpleList is).   
The user edits cells.

Basically, when the user activates an editable cell, the tree view  
tells the cell to start editing itself.  At this point the cell  
creates an editable that the tree view puts in the right spot.  The  
user does stuff and then ends the editing somehow.  Generally, it  
is up to your code to catch the editing-done signal and make  
appropriate changes to the model.

SimpleList does some work for you to apply automatically a user's  
changes.

To modify the behavior of SimpleList's editing controls, you'll  
basically have to create a custom column type, and handle the editing  
behavior all for yourself.

There are other discussions on this list about how to make all that  
work, and several cell editing examples available.


Does that answer your question?


--
It's all very complicated and would take a scientist to explain it.
   -- MST3K


___
gtk-perl-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list


Re: GtkIMContext still be missed

2007-04-14 Thread alexe . cn
Anybody can help me?


2007/4/9, [EMAIL PROTECTED] [EMAIL PROTECTED]:
 hi,

 I couldn't found GtkIMContext module in gtk2-perl.
 I remember muppet made a patch for it, but i lost that patch.
 Can muppet commit it to the cvs source?


 --
 +---+
  |By Alexe (http://alexe.cublog.cn)|
 +--+



-- 
+---+
 |By Alexe (http://alexe.cublog.cn)|
+--+
___
gtk-perl-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list


Re: GtkIMContext still be missed

2007-04-14 Thread muppet


On Apr 14, 2007, at 10:07 PM, [EMAIL PROTECTED] wrote:


Anybody can help me?


2007/4/9, [EMAIL PROTECTED] [EMAIL PROTECTED]:

hi,

I couldn't found GtkIMContext module in gtk2-perl.
I remember muppet made a patch for it, but i lost that patch.
Can muppet commit it to the cvs source?


Sorry about the delay -- i had to dig up and recreate part of the patch.

I know really nothing about input managers, so i have no idea how to  
test this.  The patch does not give you all the hooks you need to  
make your own input manager, but will allow you to use existing  
ones.  Is this sufficient?


I'd be happy to commit after Torsten and Emmanuele review it, but  
also after your feedback as to whether it's a sufficient patch.




imcontext.patch
Description: Binary data



--
It's all very complicated and would take a scientist to explain it.
  -- MST3K


___
gtk-perl-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list