Changes

New signals
Line 4: Line 4:     
I will take [[User:Humitos/PortingGetBooks|this guide]] as reference on the Gtk3 porting.
 
I will take [[User:Humitos/PortingGetBooks|this guide]] as reference on the Gtk3 porting.
 +
 +
= Porting Gtk.DrawingArea =
 +
 +
There are some things related with <tt>gtk.DrawingArea</tt> that we have to change when we are porting an activity to Gtk3. The names of the signals change and the way that they work as well.
 +
 +
== Signals ==
 +
 +
=== expose-event ===
 +
 +
* http://developer.gnome.org/gtk3/3.5/GtkWidget.html#GtkWidget-draw
 +
 +
This signal was override by '''draw''' and it have to be connected with the method that was connected with the ''expose-event'' before. The method itself does not change but the arguments that it receives do. This is the new definition of the function in my case:
 +
 +
def _draw_event_cb(self, widget, cr):
 +
 +
=== size-allocate ===
 +
 +
* http://developer.gnome.org/gtk3/3.5/GtkWidget.html#GtkWidget-configure-event
 +
 +
This signal was used to resize the gtk.DrawingArea every time the window grows and at the startup of the activity. This is useful to re-draw the widget for different resolutions (desktops and XOs for example).
 +
 +
I used the same function connected to this signal but I change the signal connected by '''configure-event'''. Here is the definition of the callback:
 +
 +
def _configure_event_cb(self, widget, event):
 +
 +
I just used the ''size-allocate'' signal to save the the dimensions of the widget (width and height), so I can use them later on the '''draw''' signal.
 +
 +
def _size_allocate_cb(self, widget, rect):
 +
    self.width = rect.width
 +
    self.height = rect.height
    
= Focus =
 
= Focus =
266

edits