GTK widget styles.
How would I set the style GtkWidget::focus-line-pattern in a gtkrc file? The documentation says it's a gchararray, but I'm not sure what syntax is required for that. I've tried text and numbers, both quoted and unquoted and not had nice results (2-3 huge lines). What I am trying to do is change the dashed pattern from "- - - " to "--- --- --- ". BTW, I also noticed that if I set "GtkRange::stepper-spacing = 20", the scrolling is broken if you put the slider at either extreme: when you next drag it, it jumps along by a few pixels. Is this a known bug? Thanks, Roger -- Roger Leigh Printing on GNU/Linux? http://gimp-print.sourceforge.net/ GPG Public Key: 0x25BFB848. Please sign and encrypt your mail. ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
Re: Setting widget style such as button color, text size.
Hi Heechul, Labels and buttons don't have their own windows, so they don't have a background colour. If you want to set the colour separately, put them inside a GtkEventBox. I'm not sure about the flat frame. I think .gtkrc files are not so hard to write. The easiest way is to look at some themes that do something similar to what you want, and modify them. John [EMAIL PROTECTED] wrote: > - How do you guys adjust widget styles such as color, font, ... > I know that gtkrc do this job. But, writing a gtkrc file manually is very > difficult. > So I hoped that glade-2 can generate rc file for me, but there's no such > feature. > I hope to hear advices on writing gtkrc more easily. > > - I want to know how to set background color of button or label widget. > I modified bg[NORMAL] style of those widget, but it doesn't worked as > expected while fg[NORMAL] do. > > - I also want to know how to draw a border line without shadowing effect. I > want to see just flat black rectangle around label or button widget. ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
GtkComboBox ? in Gtk+-2.3
Hi all, I test the new GtkComboBox widget for a project. But i have a problem, the items on this GtkComboBox are hidden, and i don't know why. Here is my source code, it's a small code, can you check it and send me the right way to use GtkComboBox. Thanks, Stephane #include #include gchar *data[] = { "Item 1", "Item 2", "Item 3", NULL }; GtkTreeModel *create_model(void) { GtkListStore *store; GtkTreeIter iter; guint i; store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_STRING); for ( i = 0 ; data[i] != NULL; i++ ) { gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, i, 1, data[i], -1); } return GTK_TREE_MODEL(store); } gint main(gint argc, gchar **argv) { GtkWidget *window; GtkWidget *button; GtkWidget *combo_box; GtkTreeModel *model; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "destroy", gtk_main_quit, NULL); gtk_widget_set_size_request(window, 100, 50); model = create_model(); if ( model != NULL ) { combo_box = gtk_combo_box_new(model); gtk_container_add(GTK_CONTAINER(window), combo_box); } gtk_widget_show_all(window); gtk_main(); return 0; }
Re: emitting a signal for refeshing entries
>A parameter can vary form 1 to 100 and I want the spinbutton to show >this value from this parameter when it changes in the program not only >by interaction. I now how to set it from within the software, but I >would like to ahve all callback function that react on "expose" events >to be activated at once. reading this more carefully, this is a perfect candidate for using a GtkAdjustment. Just create it with the relevant parameters: initial value lower bound upper bound small step size page step size then when you create the spinbutton attach it to this adjustment. in your code, when you want to change the value, set the value of the adjustment and the spin button will change. connect to the adjustment's "value_changed" signal if you want to know when the spinbutton or your code has changed the value. be careful to avoid feedback loops. write things like: gfloat adjuster_value = gtk_adjustment_get_value (GTK_ADJUSTMENT(adjuster)); if (adjuster_value != parameter_value) { gtk_adjustment_set_value (GTK_ADJUSTMENT(adjuster), parameter_value); } this assumes that you have the parameter stored elsewhere in the program (i.e. it can't actually be a GtkAdjustment itself). --p ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
Re: emitting a signal for refeshing entries
Hi, Thank you all for the replies, but what I am looking for is a way to send an "EXPOSE" signal to the main window and wiil this signal propagate to all the widgets in this main window ? I have the callback for "expose events" ready and I have used the GtkAdjustment. As it looks now I will have to send an "expose_event" signal to each widget individually as this signal cannot be emitted/sent to all the widgets at once ? There si no way to send a signal to all widgets at once ? Best regards, Peter Van Osta Union Biometrica N.V./S.A. European Scientific Operations (ESO) Cipalstraat 3 B-2440 Geel Belgium Tel.: +32 (0)14 570 620 Fax.: +32 (0)14 570 621 http://www.unionbio-eu.com/ http://ourworld.compuserve.com/homepages/pvosta/cvwww.htm === Paul Davis wrote: A parameter can vary form 1 to 100 and I want the spinbutton to show this value from this parameter when it changes in the program not only by interaction. I now how to set it from within the software, but I would like to ahve all callback function that react on "expose" events to be activated at once. reading this more carefully, this is a perfect candidate for using a GtkAdjustment. Just create it with the relevant parameters: initial value lower bound upper bound small step size page step size then when you create the spinbutton attach it to this adjustment. in your code, when you want to change the value, set the value of the adjustment and the spin button will change. connect to the adjustment's "value_changed" signal if you want to know when the spinbutton or your code has changed the value. be careful to avoid feedback loops. write things like: gfloat adjuster_value = gtk_adjustment_get_value (GTK_ADJUSTMENT(adjuster)); if (adjuster_value != parameter_value) { gtk_adjustment_set_value (GTK_ADJUSTMENT(adjuster), parameter_value); } this assumes that you have the parameter stored elsewhere in the program (i.e. it can't actually be a GtkAdjustment itself). --p ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
Re: emitting a signal for refeshing entries
Hi, Peter Van Osta <[EMAIL PROTECTED]> writes: > Thank you all for the replies, but what I am looking for is a way to > send an "EXPOSE" signal to the main window and wiil this signal > propagate to all the widgets in this main window ? Call gtk_widget_queue_draw() on the top-level widget (the window). Sven ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
URGENT: Problem with GtkPaned
hello, i have a problem with GtkPaned. The attached file is a source that reproduce the problem (build with gtk+-2.2.3 under win32). The problem is that when the user move the first paned the widget in the second paned is not redraw correctly. What can i do ? Is a bug or i am wrong ? This is a small problem but the release of application is near. NB: In the real application the problem appear also when i use gtk_paned_set_position(): the widget in the paned is not visible, but if i move with the mouse the paned the widget magically appears. thanks, hammer. __ Yahoo! Mail: 6MB di spazio gratuito, 30MB per i tuoi allegati, l'antivirus, il filtro Anti-spam http://it.yahoo.com/mail_it/foot/?http://it.mail.yahoo.com/#include GtkWidget * create_item(GtkWidget * container, const char * t) { GtkWidget * box; GtkWidget * label; GtkWidget * evtbox; box = gtk_vbox_new(FALSE,FALSE); gtk_widget_show(box); gtk_container_add(GTK_CONTAINER(container),box); evtbox = gtk_event_box_new(); gtk_widget_show(evtbox); gtk_container_add(GTK_CONTAINER(box),evtbox); label = gtk_label_new(t); gtk_widget_show(label); gtk_container_add(GTK_CONTAINER(evtbox),label); return box; } GtkWidget* create_window1 (void) { GtkWidget *window1; GtkWidget *hpaned1; GtkWidget *hpaned2; GtkWidget *scrolledwindow1; GtkWidget *viewport2; GtkWidget *viewport10; GtkWidget *viewport20; GtkWidget *frame50; GtkWidget *vpaned1; GtkWidget *scrolledwindow4; GtkWidget *viewport1; GtkWidget *frame3; GtkWidget *vpaned2; GtkWidget *scrolledwindow3; GtkWidget *frame4; GtkWidget *scrolledwindow2; GtkWidget *frame5; window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window1), "window1"); hpaned1 = gtk_hpaned_new (); gtk_widget_show (hpaned1); gtk_container_add (GTK_CONTAINER (window1), hpaned1); gtk_paned_set_position (GTK_PANED (hpaned1), 0); hpaned2 = gtk_hpaned_new (); gtk_widget_show (hpaned2); gtk_paned_pack1 (GTK_PANED (hpaned1), hpaned2, FALSE, TRUE); gtk_paned_set_position (GTK_PANED (hpaned2), 0); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_paned_pack1 (GTK_PANED (hpaned2), scrolledwindow1, FALSE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport2 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport2); gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport2); frame50 = gtk_frame_new("Menu"); gtk_widget_show(frame50); gtk_container_add (GTK_CONTAINER (viewport2), frame50); { GtkWidget * box; box = gtk_vbox_new(FALSE,FALSE); gtk_widget_show(box); gtk_container_add(GTK_CONTAINER(frame50),box); } vpaned1 = gtk_vpaned_new (); gtk_widget_show (vpaned1); gtk_paned_pack2 (GTK_PANED (hpaned2), vpaned1, TRUE, TRUE); gtk_paned_set_position (GTK_PANED (vpaned1), 0); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow4); gtk_paned_pack1 (GTK_PANED (vpaned1), scrolledwindow4, FALSE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport1 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport1); gtk_container_add (GTK_CONTAINER (scrolledwindow4), viewport1); frame3 = gtk_frame_new ("Prova"); gtk_widget_show (frame3); gtk_container_add (GTK_CONTAINER (viewport1), frame3); create_item(frame3,"Paned1"); vpaned2 = gtk_vpaned_new (); gtk_widget_show (vpaned2); gtk_paned_pack2 (GTK_PANED (vpaned1), vpaned2, TRUE, TRUE); gtk_paned_set_position (GTK_PANED (vpaned2), 100); scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow3); gtk_paned_pack1 (GTK_PANED (vpaned2), scrolledwindow3, FALSE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport10 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport10); gtk_container_add (GTK_CONTAINER (scrolledwindow3), viewport10); frame4 = gtk_frame_new ("Prova"); gtk_widget_show (frame4); gtk_container_add (GTK_CONTAINER (viewport10), frame4); create_item(frame4,"Paned2 ERROR"); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow2); gtk_paned_pack2 (GTK_PANED (vpaned2), scrolledwindow2, TRUE, TRUE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); viewport20 = gtk_viewport_new (NULL, NULL); gtk_widget_show (viewport20); gtk_container_add (GTK_CONTAINER (scrolledwindow2), viewport20); frame5 = gtk_frame_new ("Prova"); gtk_widget_show (frame5)
Re: GtkComboBox ? in Gtk+-2.3
Stephane Wirtel <[EMAIL PROTECTED]> writes: > Hi all, > > I test the new GtkComboBox widget for a project. > But i have a problem, the items on this GtkComboBox are hidden, and i > don't know why. > > Here is my source code, it's a small code, can you check it and send > me the right way to use GtkComboBox. This list is meant for the development of GTK+, and not for developing applications with GTK+. I'm sure if you asked your question on [EMAIL PROTECTED], they'd tell you that you don't didn't add a GtkCellRenderer. -Jonathan ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
dynmically growing GtkTreeView from MySQL DB?
I'm writing an app that uses MySQL (currently but could use Unix ODBC later) as a backend. On one of the Data Entry screens, I want to show a treeview of the list of people added or are in the DB. I need the list to display quickly and be updated as new people are added. The TreeView set up as a list as opposed to a tree. Additionally, I want the data entry person to be able to double-click on an entry and edit it in the data entry portion of the window, which means I need fast retrieval of that information. How really should I handle this? In particularly the dynamically growing nature of the view? Any and all help is greatly and urgently requested and appreciated. -- .''`. Carl B. Constantine : :' : [EMAIL PROTECTED] `. `'GnuPG: 135F FC30 7A02 B0EB 61DB 34E3 3AF1 DC6C 9F7A 3FF8 `- Debian GNU/Linux -- The power of freedom "Claiming that your operating system is the best in the world because more people use it is like saying McDonalds makes the best food in the world." ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
gtk on windows
Hi all, I am a windows user and I am trying to port gtk on cygwin. If you give support only to Unix users, I'll thank you anyway.
Re: gtk on windows
Hi, "U Fleku" <[EMAIL PROTECTED]> writes: > Hi all, I am a windows user and I am trying to port gtk on > cygwin. If you give support only to Unix users, I'll thank you > anyway. Win32, especially cygwin, is an officially supported platform so there's no need to "port" anything. If you are looking for Win32 binaries, there is this link on the GTK+ homepage that points to http://www.gimp.org/~tml/gimp/win32/ Sven ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
Re: gtk on windows
Hi, "U Fleku" <[EMAIL PROTECTED]> writes: > > If you are looking for Win32 > > binaries, there is this link on the GTK+ homepage that points to > > > > http://www.gimp.org/~tml/gimp/win32/ > > Yes, I know gtk for win32, but the package don't have the gtk-config file, > that the compilation of Lopster requires. I have only extract the files of > the package into the cygwin directory. It's wrong? If your software looks for gtk-config, it requires the old GTK+-1.2 API. There are win32 packages that provides this API. The windows port was added early in the 1.3 series, so you want to download the 1.3 packages from Tor's site. Sven ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
GLib-2.3.0 released [unstable]
GLib-2.3.0 is now available for download at: ftp://ftp.gtk.org/pub/gtk/v2.3/ glib-2.3.0.tar.bz2 md5sum: 2390f83aeba20851bbb9b816269c0735 glib-2.3.0.tar.gz md5sum: 33fe978e40b641ba15004f0e04862e19 This is the first development release loading up to GLib-2.4. This release contains a number of small to medium sized API additions, such as the addition of instance-private data and properties on interfaces to GObject, and an update of the Unicode data to the recently released Unicode 4.0. Notes: * This is unstable development release. While it has had fairly extensive testing, there are certainly plenty of bugs remaining to be found. This release should not be used in production. * Installing this version will overwrite your existing copy of GLib-2.2. If you have problems, you'll need to reinstall GLib-2.2.4. * GLib-2.4 will be source and binary compatible with the GLib-2.2.x series; however, the new API additions in GLib-2.2.0 are not yet finalized, so there may be incompatibities between this release and the final 2.2 release. * Remaining API issues for GLib-2.2 can be found with following bugzilla query: http://bugzilla.gnome.org/buglist.cgi?product=glib&target_milestone=2.4+API+Freeze&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED * Bugs should be reported to http://bugzilla.gnome.org. About GLib == GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system. More information about GLib is available at: http://www.gtk.org/ An installation guide for the GTK+ libraries, including GLib, can be found at: http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html Overview of Changes from GLib 2.2.x to GLib-2.3.0 = * Replace Trio printf by gnulib vasnprintf [Matthias Clasen] * Update Unicode data to Unicode 4.0 [Noah Levitt] * Support XML-safe formatted output with g_markup_[v]printf_escaped [Owen Taylor] * Add g_file_read_link to read symbolic links [Matthias] * Add g_unichar_get_mirror_char to obtain the mirrored variant of a character [Noah] * Support for one-time initialization functions. [Sebastian Wilhelmi] * Miscellaneous API additions: g_vasprintf g_string_chunk_insert_len, g_setenv, g_unsetenv [Matthias] * Docs improvements [Matthias] * Add support instance-private data on classed types [Mark McLoughlin, Tim Janik, Owen] * Optimize signal emissions [Soeren Sandmann, Tim] * Support a "default vtable" per interface [Tim] * Add support for properties on interfaces [Owen, Tim] * Miscellaneous API additions: g_value_take_string(), g_value_take_param(), g_value_take_object(), g_value_take_boxed(). [Matthias] 24 October 2003 ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
Pango-1.3.0 released [unstable]
Pango-1.3.0 is now available for download at: ftp://ftp.gtk.org/pub/gtk/v2.3/ pango-1.3.0.tar.bz2 md5sum: 5fc4a79d901f4c0bf98ad0194f4a87a7 pango-1.3.0.tar.gzmd5sum: 373a6ece153eb047fe913e4d70cf4ecc This is the first development release loading up to Pango-1.3. There are some substantial internal changes, especially in the area of Notes: * This is unstable development release. While it has had fairly extensive testing, there are certainly plenty of bugs remaining to be found. This release should not be used in production. * Installing this version will overwrite your existing copy of Pango-1.2. If you have problems, you'll need to reinstall Pango-1.2.5. * Pango-1.4 will be source and binary compatible with the Pango-1.2.x series; however, the new API additions in Pango-1.3.0 are not yet finalized, so there may be incompatibilities between this release and the final 2.2 release. * Remaining API issues for Pango-1.4 can be found with following bugzilla query: http://bugzilla.gnome.org/buglist.cgi?product=pango&target_milestone=1.4+API+Freeze&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED * Bugs should be reported to http://bugzilla.gnome.org. About Pango === Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most usage so far as been in the context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+ 2. Pango is designed to be modular; the core Pango layout can be used with four different font backends: - Core X windowing system fonts - Client-side fonts on X using the Xft2 library - Direct rendering of scalable fonts using the FreeType library - Native fonts on Microsoft platforms Dynamically loaded modules then handle text layout for particular combinations of script and font backend. Pango-1.2 ships with a wide selection of modules, including modules for Hebrew, Arabic, Hangul, Thai, and a number of Indic scripts. Virtually all of the world's major scripts are supported. As well as the low level layout rendering routines, Pango includes PangoLayout, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text. More information about Pango is available from http://www.pango.org/. Pango depends on version 2.2.0 or newer of the GLib library; more information about GLib can be found at http://www.gtk.org/. Overview of changes between 1.2.x and 1.3.0 === * Share modules between the FT2 and Xft backend. Export PangoFcFont and PangoFcFontMap base classes so that other fontconfig based backends can be written and use these same modules. * Redo module system to use GTypeModule and work much like GTK+ theme engines and input method modules. * Change modules to declare coverage by script, rather than by code point. Add a ->covers callback so that modules can dynamically decide whether they can cover a particular codepoint with a given font. (This will allow multiple modules to handle a script for different types fonts.) * Complete rewrite of itemization pass. Now uses script information to improve language tags. This solves problems with incorrect language tags resulting in drastically wrong fonts being selected by fontconfig. * Add backspace-deletes-character PangoLogAttr; will allow proper deletion behavior for non-Western scripts. [Noah Levitt] * Add pango_fc_font_kern_glyphs(), which speeds up kerning a lot over doing it pair-by-pair. [Soeren Sandmann]. Kern in the Xft backend as well as the FT2 backend. * Remove the X font backend, except a minimal set of stubs to maintain binary compatibility. * Many improvements to pangoft2topgm to allow displaying PangoMarkup, saving to different file formats, etc. * Convert build system to automake-1.7; many cleanups and improvements. [James Henstridge] * Documentation additions and improvements [Matthias Clasen, Martin Pool]; add man pages for the included binaries. [Matthias] * Misc bug and build fixes [Josh Beam, Tony Graham, Kaushal Kumar, Noah, Mehran Mehr, Soeren, Morten Welinder] * Win32 build fixes [Tor Lillquist, Hans Breuer] Owen Taylor 24 October 2003 ___ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list
GTK+-2.3.0 released [unstable]
GTK+-2.3.0 is now available for download at: ftp://ftp.gtk.org/pub/gtk/v2.3/ gtk+-2.3.0.tar.bz2 md5sum: e3336aa41e440755543cb6532bec9938 gtk+-2.3.0.tar.gzmd5sum: 83a5c6351797da3f2ef33e78408d8e6e This is the first development release loading up to GTK+-2.4. This release contains a number of major new widgets and capabilities including: an action based menu system, a replacement for GtkFileSelector, and a new unified GtkComboBox widget that replaces both GtkOptionMenu and GtkCombo. Special thanks on this release go to Marco Pesenti Gritti for testing out the new widgets and menu system in Epiphany and providing plentiful feedback. We hope many more people will follow his lead. Notes: * This is unstable development release. There are certainly plenty of bugs remaining to be found. This release should not be used in production. * Installing this version will overwrite your existing copy of GTK+-2.0. If you have problems, you'll need to reinstall GTK+-2.0.6. * GTK+-2.4 will be source and binary compatible with the GTK+-2.2.x series; however, the new API additions in GTK+-2.3.0 are not yet finalized, so there are likely incompatibities between this release and the final 2.2 release. * Remaining API issues for GTK+-2.4 can be found with following bugzilla query: http://bugzilla.gnome.org/buglist.cgi?product=gtk%2b&target_milestone=2.4+API+Freeze&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED * Bugs should be reported to http://bugzilla.gnome.org. What is GTK+ GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites. GTK+ has been designed from the ground up to support a range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development. GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all pdevelopers, including those developing proprietary software, without any license fees or royalties. Where to get more information about GTK+ Information about GTK+ including links to documentation can be found at: http://www.gtk.org/ An installation guide for GTK+-2.2 is found at: http://developer.gnome.org/doc/API/2.2/gtk/gtk-building.html Common questions: http://developer.gnome.org/doc/API/2.2/gtk/gtk-question-index.html http://www.gtk.org/faq/ Overview of Changes from GTK+-2.2.x to GTK+-2.3.0 = * New Widgets - GtkFileChooser: a replacement for GtkFileSelection with replaceable backends, many new API features, better user interface (UI is still a work in progress) [Owen Taylor, Federico Mena Quintero] - New combo box widgets: GtkComboBox, GtkComboBoxEntry [Kristian Rietveld] - New "disclosure triangle" widget: GtkExpander [Marc McLoughlin] - "Picker button" widgets based on code from libgnomeui: GtkFontButton, GtkColorButton [Matthias Clasen] * Widget improvements: - Autocompletion for entries: GtkEntryCompletion [Kristian] - Add separate padding for all 4 sides of GtkAlignment [Murray Cumming] - Add input-only event boxes for trapping events [Alex Larsson] - Support RTL flipping for GtkHPaned, tab navigation [Soeren, Matthias] - Support up to four scroll arrows on GtkNotebook and make which ones are displayed themeable. [Matthias] - GtkCalendar improvements: make the arrows spin, support RTL flipping, automatic week start selection, DND support, improve API for setting options [Matthias]; mousewheel support [Abigail Brady] - New properties: GtkButton::focus_on_click, GtkCheckMenuItem::draw_as_radio [Soeren, Matthias] - New functions: gtk_window_set_default_icon(), gtk_message_dialog_add_buttons(), gtk_button_box_get_child_secondary() [Matthias] - Add missing "role", "decorated", "gravity" properties for GtkWindow, "has_resize_grip" for GtkStatusBar. [Matthias] - Add child properties for GtkPaned [Matthias, Soeren] * Menus - New action-based menu API: GtkUIManager, GtkActionGroup, GtkAction, etc. [James Henstridge, Matthias, Soeren Sandmann, Marco Pesenti Gritti, Philip Langdale] - Support for tabular menus [Kristian] - New positioning algorithm for popup menus [Soeren] * GtkTextView [Matthias] - Add properties "accepts_tab" [Soeren], "overwrite" property [Jeroen Zwarepoorte], "buffer" - Add gtk_text_buffer_select_range() - Implement drag-selection by words/lines (also for Gtkentry) - Some fixes to invisible text handling - Add support for GTK_WRAP_WORD_CHAR [David Brigada] - Clean up handling of horizontal paging - Fix scrolling with non-visible cursor - Add internals documentation [Havoc Pennington]