Re: Get column no. of edited cell.

2013-06-02 Thread dE

On 06/02/13 00:27, Arnel A. Borja wrote:

On Sunday, 02 June, 2013 01:44 AM, dE wrote:
I've set the editable property of GtkCellRenderer to true, and set 
the call back for the edited signal.


This particular signal tells the node/row in which the edit has 
occurred, but not the column/filed. How can I get that?


Thanks!


Use a different renderer for each column. Then check in the edited 
signal which renderer was edited.


I'm trying this out, but isnt this also possible with 
gtk_tree_view_get_cursor clubbed with 
gtk_tree_view_column_get_sort_column_id.


Cause I'm getting segfault with --

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, build_object 
), tree_path, focus_column );


Where --

GtkTreeViewColumn **focus_column;
GtkTreePath **tree_path;
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Get column no. of edited cell.

2013-06-02 Thread James Tappin
Another possibility would be to use  g_object_set_data to give the renderer
a column number, and g_object_get_data in the handler.


On 2 June 2013 07:15, dE de.tec...@gmail.com wrote:

 On 06/02/13 00:27, Arnel A. Borja wrote:

 On Sunday, 02 June, 2013 01:44 AM, dE wrote:

 I've set the editable property of GtkCellRenderer to true, and set the
 call back for the edited signal.

 This particular signal tells the node/row in which the edit has
 occurred, but not the column/filed. How can I get that?

 Thanks!


 Use a different renderer for each column. Then check in the edited signal
 which renderer was edited.


 I'm trying this out, but isnt this also possible with
 gtk_tree_view_get_cursor clubbed with gtk_tree_view_column_get_sort_**
 column_id.

 Cause I'm getting segfault with --

 gtk_tree_view_get_cursor ( detect_object ( DataDisplay, build_object ),
 tree_path, focus_column );

 Where --

 GtkTreeViewColumn **focus_column;
 GtkTreePath **tree_path;

 __**_
 gtk-app-devel-list mailing list
 gtk-app-devel-list@gnome.org
 https://mail.gnome.org/**mailman/listinfo/gtk-app-**devel-listhttps://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

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


Re: Get column no. of edited cell.

2013-06-02 Thread dE

On 06/02/13 12:49, Arnel A. Borja wrote:

On Sunday, 02 June, 2013 02:15 PM, dE wrote:
I'm trying this out, but isnt this also possible with 
gtk_tree_view_get_cursor clubbed with 
gtk_tree_view_column_get_sort_column_id.


Cause I'm getting segfault with --

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, 
build_object ), tree_path, focus_column );


Where --

GtkTreeViewColumn **focus_column;
GtkTreePath **tree_path;


This is what the documentation says about the parameters of 
gtk_tree_view_get_cursor 
(https://developer.gnome.org/gtk3/stable/GtkTreeView.html#gtk-tree-view-get-cursor):

/|
tree_view|/ : A GtkTreeView
/|path|/ : A pointer to be filled with the current cursor path, 
orNULL.*[**out**]*[transfer full][allow-none]
/|focus_column|/: A pointer to be filled with the current focus 
column, orNULL.*[**out**]*[transfer full][allow-none]


Noticed the [out] in path and focus column? That means you have to 
pass the pointers to a (GtkTreeViewColumn *) variable and a 
(GtkTreePath *) variable, instead of passing a (GtkTreeViewColumn **) 
variable and a (GtkTreePath **) variable.


You may do something like this then:

GtkTreeViewColumn *focus_column;
GtkTreePath *tree_path;

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, build_object 
), tree_path, focus_column );


Now focus_column and tree_path contains the currently focused column 
and path to its row, respectively.


Yes, now it works. Thanks!

However, it appears that this is not something suitable for the task, 
since this particular event edited (GtkCellRender) is triggered after 
the editing has finished. As a result, I get -1 with 
gtk_tree_view_column_get_sort_column_id (focus_column).


So I've tried out your original technique, but I'm having some issues 
there --


I'm comparing the passed over GtkCellRenderer * with all renderers as 
such --


while ( mod_renderer != *(renderer + i) )
i++;

Where mod_renderer is the passed over GtkCellRenderer and renderer is  --

GtkCellRenderer **renderer;

and allocated memory via --

GtkCellRenderer **renderer = g_malloc (sizeof (GtkCellRenderer*) * 2);
renderer[0] = gtk_cell_renderer_text_new ();
renderer[1] = gtk_cell_renderer_text_new ();

I'm getting sefault in the while loop.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Get column no. of edited cell.

2013-06-02 Thread Arnel A. Borja

On Sunday, 02 June, 2013 03:44 PM, dE wrote:

Referring to --

https://developer.gnome.org/gtk3/3.7/GtkCellRenderer.html

I didn't get any such field. It'll be a breakthrough if it's there.
That function is in GObject, because GtkCellRenderer is a descendant of 
GObject.
See Object Hierarchy in 
https://developer.gnome.org/gtk3/3.7/GtkCellRenderer.htm, then click 
GObject.

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


Ctrl key, event state value, XIM vs IBus

2013-06-02 Thread Luc Pionchon
Hi,

I have a program that connects to the key pressed event. I am getting
different event-state value for Ctrl, depending on the input method.
- XIM  gives 4
- IBus gives 33554436

is this how it is meant to be? How should I process it?

GDK_CONTROL_MASK catches only the XIM value


(Same for Alt)
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Get column no. of edited cell.

2013-06-02 Thread Arnel A. Borja

On Sunday, 02 June, 2013 03:35 PM, dE wrote:

On 06/02/13 12:49, Arnel A. Borja wrote:

On Sunday, 02 June, 2013 02:15 PM, dE wrote:
I'm trying this out, but isnt this also possible with 
gtk_tree_view_get_cursor clubbed with 
gtk_tree_view_column_get_sort_column_id.


Cause I'm getting segfault with --

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, 
build_object ), tree_path, focus_column );


Where --

GtkTreeViewColumn **focus_column;
GtkTreePath **tree_path;


This is what the documentation says about the parameters of 
gtk_tree_view_get_cursor 
(https://developer.gnome.org/gtk3/stable/GtkTreeView.html#gtk-tree-view-get-cursor):

/|
tree_view|/ : A GtkTreeView
/|path|/ : A pointer to be filled with the current cursor path, 
orNULL.*[**out**]*[transfer full][allow-none]
/|focus_column|/: A pointer to be filled with the current focus 
column, orNULL.*[**out**]*[transfer full][allow-none]


Noticed the [out] in path and focus column? That means you have to 
pass the pointers to a (GtkTreeViewColumn *) variable and a 
(GtkTreePath *) variable, instead of passing a (GtkTreeViewColumn **) 
variable and a (GtkTreePath **) variable.


You may do something like this then:

GtkTreeViewColumn *focus_column;
GtkTreePath *tree_path;

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, 
build_object ), tree_path, focus_column );


Now focus_column and tree_path contains the currently focused column 
and path to its row, respectively.


Yes, now it works. Thanks!

However, it appears that this is not something suitable for the task, 
since this particular event edited (GtkCellRender) is triggered 
after the editing has finished. As a result, I get -1 with 
gtk_tree_view_column_get_sort_column_id (focus_column).


So I've tried out your original technique, but I'm having some issues 
there --


I'm comparing the passed over GtkCellRenderer * with all renderers as 
such --


while ( mod_renderer != *(renderer + i) )
i++;

Where mod_renderer is the passed over GtkCellRenderer and renderer is  --

GtkCellRenderer **renderer;

and allocated memory via --

GtkCellRenderer **renderer = g_malloc (sizeof (GtkCellRenderer*) * 2);
renderer[0] = gtk_cell_renderer_text_new ();
renderer[1] = gtk_cell_renderer_text_new ();

I'm getting sefault in the while loop.
Your comparing a GtkCellRenderer and a GtkCellRendererText here. Try 
casting like this:


while (GTK_CELL_RENDERER (mod_renderer) != GTK_CELL_RENDERER (renderer[i]))
i++;

Or just store them as GtkCellRendererText:

GtkCellRendererText **renderer = g_malloc (sizeof (GtkCellRendererText*) 
* 2);

renderer[0] = gtk_cell_renderer_text_new ();
renderer[1] = gtk_cell_renderer_text_new ();

But still, this is quite dangerous, since mod_renderer may really not in 
renderer. You may use if/else blocks:


/* mod_renderer and renderer[i] should be GtkCellRendererText */
if (mod_renderer == renderer[0])
{
/* renderer[0] edited */
}
else if (mod_renderer == renderer[1])
{
/* renderer[1] edited */
}

Though usually when I want to do something like this, I would connect to 
each cell renderer, with each one have their own callback.


Something like this:

renderer1 = gtk_cell_renderer_text_new ();
g_signal_connect (renderer1, edited, on_renderer1_edited, my_data);

renderer2 = gtk_cell_renderer_text_new ();
g_signal_connect (renderer2, edited, on_renderer2_edited, my_data);

Then I'll just do what I need to do inside the two callbacks.

You may also want to read this tutorial about GtkTreeView's: 
http://scentric.net/tutorial/

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


Re: Get column no. of edited cell.

2013-06-02 Thread dE

On 06/02/13 14:30, Arnel A. Borja wrote:

On Sunday, 02 June, 2013 03:35 PM, dE wrote:

On 06/02/13 12:49, Arnel A. Borja wrote:

On Sunday, 02 June, 2013 02:15 PM, dE wrote:
I'm trying this out, but isnt this also possible with 
gtk_tree_view_get_cursor clubbed with 
gtk_tree_view_column_get_sort_column_id.


Cause I'm getting segfault with --

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, 
build_object ), tree_path, focus_column );


Where --

GtkTreeViewColumn **focus_column;
GtkTreePath **tree_path;


This is what the documentation says about the parameters of 
gtk_tree_view_get_cursor 
(https://developer.gnome.org/gtk3/stable/GtkTreeView.html#gtk-tree-view-get-cursor):

/|
tree_view|/ : A GtkTreeView
/|path|/ : A pointer to be filled with the current cursor path, 
orNULL.*[**out**]*[transfer full][allow-none]
/|focus_column|/: A pointer to be filled with the current focus 
column, orNULL.*[**out**]*[transfer full][allow-none]


Noticed the [out] in path and focus column? That means you have to 
pass the pointers to a (GtkTreeViewColumn *) variable and a 
(GtkTreePath *) variable, instead of passing a (GtkTreeViewColumn 
**) variable and a (GtkTreePath **) variable.


You may do something like this then:

GtkTreeViewColumn *focus_column;
GtkTreePath *tree_path;

gtk_tree_view_get_cursor ( detect_object ( DataDisplay, 
build_object ), tree_path, focus_column );


Now focus_column and tree_path contains the currently focused column 
and path to its row, respectively.


Yes, now it works. Thanks!

However, it appears that this is not something suitable for the task, 
since this particular event edited (GtkCellRender) is triggered 
after the editing has finished. As a result, I get -1 with 
gtk_tree_view_column_get_sort_column_id (focus_column).


So I've tried out your original technique, but I'm having some issues 
there --


I'm comparing the passed over GtkCellRenderer * with all renderers as 
such --


while ( mod_renderer != *(renderer + i) )
i++;

Where mod_renderer is the passed over GtkCellRenderer and renderer 
is  --


GtkCellRenderer **renderer;

and allocated memory via --

GtkCellRenderer **renderer = g_malloc (sizeof (GtkCellRenderer*) * 2);
renderer[0] = gtk_cell_renderer_text_new ();
renderer[1] = gtk_cell_renderer_text_new ();

I'm getting sefault in the while loop.
Your comparing a GtkCellRenderer and a GtkCellRendererText here. Try 
casting like this:


while (GTK_CELL_RENDERER (mod_renderer) != GTK_CELL_RENDERER 
(renderer[i]))

i++;

Or just store them as GtkCellRendererText:

GtkCellRendererText **renderer = g_malloc (sizeof 
(GtkCellRendererText*) * 2);

renderer[0] = gtk_cell_renderer_text_new ();
renderer[1] = gtk_cell_renderer_text_new ();

But still, this is quite dangerous, since mod_renderer may really not 
in renderer. You may use if/else blocks:


/* mod_renderer and renderer[i] should be GtkCellRendererText */
if (mod_renderer == renderer[0])
{
/* renderer[0] edited */
}
else if (mod_renderer == renderer[1])
{
/* renderer[1] edited */
}

Though usually when I want to do something like this, I would connect 
to each cell renderer, with each one have their own callback.


Something like this:

renderer1 = gtk_cell_renderer_text_new ();
g_signal_connect (renderer1, edited, on_renderer1_edited, my_data);

renderer2 = gtk_cell_renderer_text_new ();
g_signal_connect (renderer2, edited, on_renderer2_edited, my_data);

Then I'll just do what I need to do inside the two callbacks.

You may also want to read this tutorial about GtkTreeView's: 
http://scentric.net/tutorial/



YES GOT IT!!

It was g_object_get/set_data. Although I did view that tutorial, but not 
in that much detail.


Thank you so much!!
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


GtkBox vs GtkGrid

2013-06-02 Thread Thomas A. Moulton

Am I missing something?

If I use GtkBox it seems that once I add a child I can't get access to 
it's address any more (GtkWidget *)


So if I create a box with some things in it in glade I really can't do 
much with them.
(Other than giving them specific names and using the builder object to 
look them up)


GtkGrid seems to have more functions... maybe that would be better to use...

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