Tue Oct 16 15:50:03 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_translate_coordinates): Add
a utility function to translate coordinates relative to
one widget's allocation to coordinates relative to another
widget's allocation.
* gtk/gtkradiobutton.c: Add a special ->focus() implementation
that:
- only accepts external focus if there is no active
member of the group or the button is active.
- makes arrow keys move the active button as well
as the focus
- make tab tab out directly.
This makes a radio button group act as a single focus location.
(#53577).
* gtk/gtkcontainer.c (gtk_container_focus): Remove prefiltering -
it was only a small optimization that didn't matter and made
things more complicated.
* gtk/gtkcontainer.c (gtk_container_focus_tab): Get rid of custom
sorter for FOCUS_TAB as we did for the other focus directions,
sort by center of widgets, not upper-left corner. (Shouldn't
matter in general.)
* gtk/gtkcontainer.c: Restructure code to remove duplicate code
from the different types of focusing: encapsulate sorting the
widgets for the focus direction into one routine
(gtk_container_focus_sort()) and then share the work of moving the
focus between the different focus directions.
* gtk/gtkcontainer.c: Fix bug where arrow navigation might not
work correctly with focus chains containing non-immediate
children. Sorting was being done using allocation coordinates for
each widget in the focus chain, and if there were intermediate
window-widgets, these allocations would not be in the same
coordinate system.
Wed Sep 19 15:46:29 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c: Add xgettext:no-c-format comment to
to handle '99% of the time. (#60473, reported by Christian Rose)
* gtk/gtkwidget.h: Remove prototype for gtk_widget_get_usize()
which no longer exists. (#60379, reported by Vitaly Tishkov)
Fri Sep 7 18:50:59 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_get_default_colormap):
Make the default default colormap the GdkRGB colormap,
not the system colormap.
* gtk/gtkinvisible.c (gtk_invisible_init)
gtk/gtkwindow.c (gtk_window_init): Set the current
colormap, as returned by _gtk_widget_peek_colormap()
on the widget.
* gtk/gtkwidget.[ch]: Export _gtk_widget_peek_colormap
to GTK+. Make it return %NULL instead of the default
colormap if no colormap has explicitely been pushed.
* gtk/gtkwidget.c (gtk_widget_get_colormap): Check for
colormaps on ancestral widgets before defaulting the
the system default colormap.
* docs/Changes-2.0.txt: explain colormap changes.
Sat Aug 18 23:01:33 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.h: Really remove set_default_style().
* docs/Changes-2.0.txt: added a note about
gtk_widget_push/pop/set_default_style.
Sat Aug 11 14:32:14 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.h (gtk_widget_set_default_visual): Add some
compat macros for push/pop/set_visual that were supposed
to be added a long time ago, but got dropped.
2001-08-07 Havoc Pennington <hp@pobox.com>
* gtk/gtkfilesel.c (open_ref_dir): fix a typo.
* gtk/gtkplug.c (gtk_plug_init): remove setting of auto_shrink;
some fixage is needed here, but nothing simple. Owen understands
it. ;-)
* gtk/gtkwindow.h, gtk/gtkwindow.c: Rework code and API for window
sizing and positioning. Also, fix bug in compute_geometry_hints
(width/height confusion for setting min size).
(gtk_window_move): new function
(gtk_window_resize): new function
(gtk_window_get_size): new function
(gtk_window_get_position): new function
(gtk_window_parse_geometry): new function
* gtk/gtkwidget.c (gtk_widget_set_size_request): new function
(gtk_widget_get_size_request): new function
(gtk_widget_get_usize): delete, that was a short-lived function
;-)
(gtk_widget_set_usize): deprecate
(gtk_widget_set_uposition): deprecate, make it a trivial
gtk_window_move() wrapper
(gtk_widget_class_init): remove x/y/width/height properties,
add width_request height_request
* demos/*: update to avoid deprecated functions
* gtk/gtklayout.c: add x/y child properties
* gtk/gtkfixed.c: add x/y child properties, and get rid of
uses of "gint16"
* tests/testgtk.c (create_window_sizing): lots of tweaks to window
sizing test
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Ensure that
configure events on toplevel windows are always in root window
coordinates, following ICCCM spec that all synthetic events
are in root window coords already, while real events are
in parent window coords. Previously the code assumed that
coords of 0,0 were parent window coords, which was
really broken.
* gtk/gtkcontainer.c (gtk_container_get_focus_chain): fix
warning
* gdk/gdkwindow.h (GdkWindowHints): add GDK_HINT_USER_POS
and GDK_HINT_USER_SIZE so we can set USSize and USPosition
hints in gtk_window_parse_geometry()
* gdk/x11/gdkwindow-x11.c (gdk_window_set_geometry_hints): support
new USER_POS USER_SIZE hints
Sat Jul 7 02:50:14 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_set_parent): Enforce
the widget/child realization/mapping invariants.
* gtk/gtkwidget.[ch] gtk/gtkprivate.h: Add functions
gtk_widget_[get/set]_child_visible() to control
whether visible children of a mapped window are
mapped.
* docs/widget_system.txt: Updated for changes in
container contract, and addition of GTK_CHILD_VISIBLE.
* gtk/gtkcontainer.c: Add generic map()/unmap()
functions that work for almost all containers.
* gtk/gtknotebook.c gtk/gtkpacker.c: Use
gtk_widget_set_child_visible() where necessary.
* gtk/*.c: Remove excess map(), unmap(), and
realization/mapping invariant enforcing code
from many containers.
Wed Jul 4 22:35:40 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c gtk/gtkmenubar.c gtk/gtktreeviewcolumn.c
gtk/gtkwidget.c:
Check GTK_WIDGET_TOPLEVEL(gtk_widget_get_toplevel (widget)),
not GTK_WIDGET_GET_ANCESTOR ... see
http://mail.gnome.org/archives/gtk-devel-list/2001-July/msg00072.html.
Indicate the best practice in the docs for gtk_widget_get_toplevel().
* gtk/gtkwidget.[ch]: Expose a private _gtk_widget_hierarchy_changed(),
so GtkPlug can give the correct signals when transforming
from a child to a toplevel.
* gtk/gtkdnd.c (gtk_drag_dest_hierarchy_changed): Handle
reparentation correctly.
* gtk/gtkwidget.c (gtk_widget_propagate_hierarchy_changed):
Propagate the previous_toplevel argument down properly.
* gtk/gtklabel.c (gtk_label_finalize): Fix unrefing
of wrong atr list.
* gtk/gtkplug.[ch]: Add an "embedded" signal.
* gtk/gtksocket.[ch]: Add "child_added", "child_removed"
signals.
* gtk/gtkplug.[ch] gtk/gtksocket.[ch]: Add
functions gtk_plug_get_id(), gtk_socket_get_id(),
to avoid the user having to worry about realization,
and gdkx.h.
* tests/testsocket.c: Extend to try out the new signals
and gtk_plug/socket_get_id().
* gtk/gtklabel.c (gtk_label_set_pattern_internal): Fix
setting of underline attributes.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Ignore
DestroyNotify events from SubstructureNotifyMask
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Switch GDK_WINDOW_TYPE (window) as needed.
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Clean up,
allow creation of toplevel windows as children of
foreign windows.
* gtk/gtkplug.c: Remove hacks involving changing private
fields of GdkWindow.
* gtk/gtkplug.[ch] gtk/gtksocket.c: Work to make
exactly the same signals and notification
be emitted for local embedding as for inter-process
embedding.
Sat Jun 30 20:44:48 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtktypeutils.c (gtk_type_class): Remove
change check for GTK_TYPE_OBJECT derivation to
G_TYPE_OBJECTS - it's Tim-approved to use this
for arbitary objects.
* gtk/gtkwindow.c gtk/gtkcontainer.[ch]: underscore
prefix gtk_container_dequeue_resize_handler().
* gtk/gtkwidget.[ch]: Add a previous_toplevel argument
to the hierarachy_changed signal, since you otherwise
have to always keep that around.
* gtk/gtkmenubar.c gtk/gtklabel.c gtk/gtksocket.c: Adapt
for extra argument to hierarchy_changed.
Tue Jun 26 19:39:03 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_set_style): Allow %NULL
for style to mean "revert to default style"
* gtk/gtkwidget.[ch] (gtk_widget_set_rc_style,
gtk_widget_restore_default_style): Make this functions
deprecated aliases for gtk_widget_set_style (widget, NULL).
* gtk/gtkwidget.[ch]: Remove:
gtk_widget_set_default_style ()
gtk_widget_push_style ()
gtk_widget_pop_style ()
These functions interact are overriden by RC files, and
thus virtually useless, and complicated.
Fri Jun 22 18:49:48 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrc.c: Add a GtkRcContext structure to hold
most of the previous global variables in gtkrc.c. This is
in preparation for multi-head, since each screen can
have different GtkSettings and RC information.
* gtk/gtkrc.[ch]:
* gtk/gtkrc.h (struct _GtkRcStyleClass): Add a
GtkSettings parameter to GtkRcStyle::parse.
* gdk/x11/gdkevents-x11.c gtk/gtksettings.c gtk/gtkrc.c:
Add two new settings gtk-theme-name, gtk-key-theme-name,
for RC files that are loaded by name after reading
the default RC files.
* gtk/gtkrc.c: Allow priorities for styles, as wll as
bindings.
* gtk/gtkenums.h gtk/gtkrc.c: Add GTK_PATH_PRIO_THEME,
and use it by default for RC files loaded via
gtk-theme-name, gtk-key-theme-name.
* gtk/gtkiconfactory.c (gtk_icon_source_set_filename)
gtk/gtkrc.c (gtk_rc_parse_pixmap_path_string)
tests/testgtkrc: Require pathnames to be absolute.
* gtk/gtkrc.c gtk/gtkiconfactory.c: Look up the full filename for
the source when parsing, since the operation of looking up a
pixmap from an RC file depends on the parsing context.
* gtk/gtkrc.c (gtk_rc_context_reparse_all): Automatically
reset RC styles on all widgets when files are reparsed.
* tests/testgtk.c (create_rc_file)
gtk/gtkwindow.c (gtk_window_read_rcfiles):
Simplify, now that gtk_rc_reparse_all() resets styles on
all widgets itself.
* gtk/gtkmain.c (gtk_get_default_language): Fix broken
return value.
* gtk/gtksettings.[ch] (gtk_settings_install_property[_ch]): Remove
GtkSettings argument.
* gtk/gtksettings.[ch] (gtk_settings_get_default): Rename from
gtk_settings_get_global().
* gtk/gtkwidget.[ch]: Add a function gtk_widget_Get_settings()
to get the appropriate GtkSettings for a widget. (For now,
just gets the default GtkSetttings.)
* gtk/gtkcolorsel.c gtk/gtkentry.c gtk/gtkmenu.c gtk/gtkmenubar.c
gtk/gtktextview.c gtk/gtktoolbar.c: Fixes for GtkSettings
changes.
* gtk/gtkrc.[ch]: Add gtk_rc_get_style_by_paths() to allow
getting a style for a path without actually having a widget.
(Allows using a style for a subpart of a widget, for
example.)
* gtk/gtkrc.[ch]: Add gtk_rc_reparse_all_for_setting() to allow forcing
the RC files to be reloaded for just one GtkSettings
(not sure how useful this really is.)
* gtk/gtkrc.h: Deprecate
gtk_rc_add_widget_name/widget_class/class_style
2001-06-28 Havoc Pennington <hp@pobox.com>
* gdk/x11/gdkimage-x11.c (_gdk_x11_get_image): Clip the retrieved
image data to the screen, using a server grab to avoid race
conditions.
* gtk/gtkitemfactory.c (gtk_item_factory_create_item): remove
check for NULL return from gtk_image_new_from_stock(), it never
returns NULL.
(gtk_item_factory_create_item): fix bug where we parsed the stock
ID as an inline pixbuf
* gtk/gtktext.c (gtk_text_key_press): numeric keypad support
* gtk/gtkspinbutton.c (gtk_spin_button_key_press): numeric keypad
support (should be using binding set here)
* gtk/gtkoptionmenu.c (gtk_option_menu_key_press): numeric keypad
support (should be using binding set here)
* gtk/gtkmenushell.c (gtk_menu_shell_class_init): numeric keypad
support
* gtk/gtkmenu.c (gtk_menu_class_init): numeric keypad support
* gtk/gtkmenubar.c (gtk_menu_bar_class_init): numeric keypad
* gtk/gtklistitem.c (gtk_list_item_class_init): numeric keypad
* gtk/gtkimcontextsimple.c
(gtk_im_context_simple_filter_keypress): keypad
* gtk/gtkfilesel.c (gtk_file_selection_key_press): keypad
* gtk/gtkentry.c (gtk_entry_class_init): numeric keypad fixes
* gtk/gtkctree.c (gtk_ctree_class_init): numeric keypad support
* gtk/gtkcolorsel.c (palette_activate): keypad support (of course,
should be binding-setted)
* gtk/gtkwindow.c (gtk_window_class_init): numeric keypad fixes
* gtk/gtkclist.c (gtk_clist_class_init): numeric keypad fixes
* gtk/gtkcalendar.c: numeric keypad fixes
* gtk/gtktextview.c (gtk_text_view_class_init): numeric keypad
support
* gdk/gdkwindow.c (gdk_window_get_clip_region): fix infinite loop
screwup
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
clip the render area to the drawable's clip region in advance,
so we don't get data from the server that we don't need.
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha):
check return value of gdk_pixbuf_get_from_drawable(), fall back
to bilevel alpha if we can't get the pixbuf to composite against.
* gdk/gdkdraw.c (gdk_drawable_get_image): set the image colormap
* gdk/gdkimage.c (gdk_image_get_colormap): add
gdk_image_set_colormap, gdk_image_get_colormap
* gdk/gdkpixbuf-drawable.c (rgbconvert): Change all converters to
take a region of the image, instead of converting the entire
image.
* gtk/gtkwidget.h (struct _GtkWidgetClass): add show_help
keybinding signal. Add default bindings for it. Add default
handler for show_help that shows the tooltip for the widget.
* gtk/gtkdialog.c (gtk_dialog_class_init): add binding set and
"close" keybinding signal, remove key press handler.
* gtk/gtktooltips.c (gtk_tooltips_set_colors): Just remove this,
it's not our usual practice to leave a deprecated function around
with a runtime warning, plus we don't want it to appear in docs,
plus if we make them yellow no one will want to change them
anyhow.
Sun Jun 24 11:29:35 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkimage-x11.c (gdk_image_new): Fix stupid error
introduced last night that was making things decidedly not work.
* gtk/*.[ch]: Patch from Kristian Rietveld adding 80 getters
so that we have getter/setter pairing everywhere it makes
sense. (#55767)
* gtk/gtkradiobutton.[ch] gtk/gtktoolbar.c tests/testgtk.:
Rename gtk_radio_button_group to gtk_radio_button_get_group, add a
deprecated compat macro. (#55516)
* gtk/gtklabel.[ch]: Add functions
gtk_label_set/get_use_underline(), gtk_label_set/get_use_markup(),
gtk_label_set_label(), which mirror the property API for GtkLabel.
Make gtk_label_get_attributes() only reflect the attributes
set by gtk_label_set_attributes.
* gtk/gtknotebook.c (gtk_notebook_set_current_page) gtk/gtkcompat.h: Rename
from gtk_notebook_set_page().
Mon Jun 18 02:00:49 2001 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_get_property): fix PROP_EVENTS.
* gtk/Makefile.am:
* gtk/gtk.h: disabled GtkPacker compilation.
* gtk/gtkarg.[hc], gtk/gtkargcollector.c: got rid of these.
* gtk/gtknotebook.c:
* gtk/gtktable.c:
* gtk/gtkbox.c: ported this over to child properties.
* gtk/gtksettings.c: fetch class properties via
g_object_class_list_properties().
* gtk/gtkcontainer.[hc]: implemented child properties, got rid of the
child arg interface. use gobjectnotifyqueue.c for child property
notification.
* gtk/gtkwidget.[hc]: provide necessary means for container child
properties, i.e. ::child_notify signal,
gtk_widget_freeze_child_notify(),
gtk_widget_child_notify(),
gtk_widget_thaw_child_notify().
* tests/testgtk.c: removed inferior property handling code, for
property editing, a generic module should be used, and GLE
coincidentally fullfills that purpose.
* docs/reference/Makefile.am: disabled gtk docs building, gtk-doc
needs to be adapted to g_object_class_list_properties() before this
builds again.
Fri Jun 8 17:56:52 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.[ch] gtk/gtkmain.c: Add a GtkWindowGroup struct
that allows grouping together multiple windows so that grabs
within that set of windows only affect those windows.
* gtk/gtkmain.c gtk/gtkwidget.[ch]: Add a "grab_notify"
signal for notification when a widget becomes shadowed
by a grab or is no longer shadowed by a grab.
* gtk/gtkwidget.c (gtk_widget_propagate_state)
gtk/gtkmain.c: (gtk_widget_grab_add): Don't allow
insenstive widgets to maintain a grab.
2001-06-08 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbuffer.c (gtk_text_buffer_remove_all_tags): geez,
don't call g_list funcs on GSList
* gtk/gtkwidget.c (gtk_widget_child_focus): replaces
gtk_container_focus(), since some widgets have focusable locations
which are not other widgets. These widgets should not have to be
containers just to manage the focus. For example, GtkHSV is
currently a container for no good reason. Also, this cleans
up the "if (is_container && is_sensitive && is_drawable)
container_focus ()" mess in widget implementations.
* gtk/gtkcontainer.c (gtk_container_focus): deprecate this
function, and have it just call gtk_widget_child_focus().
* gtk/gtkhsv.c: derive from widget not container
Throughout: fix to reflect GtkContainer::focus change
Thu May 3 14:13:49 2001 Owen Taylor <otaylor@redhat.com>
* INSTALL.in HACKING gtk/gtkaccessible.[ch] gtk/gtk.c: Add
dependency on Atk for accessibility support.
* configure.in **/Makefile.am: Major reworking of substituted
variables for CFLAGS/LIBS to make a lot more sane and
keep the the compile/link lines a bit shorter.
* gdk/x11/gdkkeys-x11.c: Fix #endif with trailing stuff.
Sun Apr 1 21:37:22 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] gtk/gtktypeutils.c gtk/gtk-boxed.defs:
Add boxed type for GtkRequistion. Use it for ::size-request.
* gtk/gtkstyle.[ch] gtk/gtktypeutils.c gtk/gtk-boxed.defs:
Add a new GtkBorder structure useful for geometry properties
for widgets. Add corresponding GTK_TYPE_BORDER.
* gtk/gtkwidget.c (gtk_widget_class_install_style_property):
Support automatic parser selection like
gtk_settings_install_property_parser().
* gtk/gtksettings.c (_gtk_rc_property_select_parser): Export
functionality for use by gtk_widget_class_install_style_property.
Support GTK_TYPE_BORDER, GTK_TYPE_REQUISITION.
Sun Apr 1 20:48:59 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c (gtk_entry_class_init): Make invisible-char
g_param_spec_unichar().
Sun Apr 1 08:00:13 2001 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.[hc]: got rid of gtk_widget_popup(), a function that
bad needs to be nuked, not just deprecated.
* gtk/gtktooltips.c (gtk_tooltips_draw_tips): don't use
gtk_widget_popup().
* gtk/*.[hc]: s/activate_mnemonic/mnemonic_activate/g;
* gtk/gtkmenufactory.[hc]: removed this long-standingly deprecated
widget.
* docs/Changes-2.0.txt: updates.
Wed Mar 28 20:30:26 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] (_gtk_widget_get_aux_info): Add private function
to get the aux info structure fo the widget.
* gtk/gtklabel.c gtk/gtkscrolledwindow.c gtk/gtkwindow.c: Use
above function.
[ Patch from Havoc Pennington <hp@redhat.com> ]
* gdk/x11/gdkwindow-x11.c (gdk_window_get_frame_extents): function
to get the size of the window manager frame, basically the same
code that gdk_window_get_root_origin() had
(gdk_window_get_root_origin): use gdk_window_get_frame_extents()
* gtk/gtkwindow.c (gtk_window_set_default_size): use
gdk_window_resize() if the window is realized and resizeable
* gdk/x11/gdkwindow-x11.c (gdk_window_set_geometry_hints): fix
typo so that setting gravity works
* gtk/gtkwindow.c (gtk_window_move_resize): don't ever use
allocation if auto_shrink is on, even if the default size
has not changed.
* gtk/gtkwidget.c (gtk_widget_render_icon): remove bogus
g_return_if_fail
Wed Mar 28 19:20:43 2001 Owen Taylor <otaylor@redhat.com>
* gtk/testtext.c (create_buffer): Add missing NULL on
valist.
* gtk/gtkcheckmenuitem.c (gtk_check_menu_item_class_init): Fix
c-n-p problem with INCONSISTENT property.
[ Patch from Havoc Pennington <hp@redhat.com> ]
* gtk/gtkentry.h (struct _GtkEntryClass): add same populate_popup
hook.
* gtk/gtktextview.h (struct _GtkTextViewClass): add populate_popup
signal as a hook for extending the default popup menu
* gtk/gtkimmulticontext.c (gtk_im_multicontext_append_menuitems):
use radio menu items for the input method menuitems
* gtk/gtkimcontextsimple.c (check_hex): do better validation of
inserted unicode from Ctrl-Shift-hex input method
* gtk/gtktextbtree.c (_gtk_text_btree_insert): remove utf8
validatation here, already done at GtkTextBuffer level.
* gtk/gtkwidget.c (gtk_widget_class_init): add binding set, add
popup_menu run action signal and Shift+F10 and Menu keybindings.
* gtk/gtkentry.c: implement a default handler for popup_menu
* gtk/gtktextview.c: implement a default handler for popup_menu
* gtk/gtkmenu.c (gtk_menu_popup): select first item if popup is
from a key event
* gtk/gtklabel.c: remove "trailer" cruft
Tue Mar 27 22:36:07 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.h gtk/gtkrange.h: Apply patch from
Nils Barth fixing event return values. (#51041)
* gtk/gtkwidget.c: Fix some return values for default
functions.
* gtk/gtk[vh]scrollbar.c gtk/gtk[vh]range.c: Fix
return values for trough_keys functions.
* gtk/gtkwidget.h (struct _GtkWidgetClass): Fix return
value for add_accelerator (shoudl have been a void
return.)
* gtk/gtkcellrenderer.[ch]: gtkcellrenderertoggle.h:
Fix return type of EVENT.
* gtk/gtkmarshal.list gtk/gtktexttag.c: Make EVENT
signal return a boolean.
Thu Mar 22 13:01:44 2001 Tim Janik <timj@gtk.org>
* gtk/gtklabel.[hc]: some cleanups, fixed mnemonic_widget handling,
added PROP_MNEMONIC_WIDGET.
* gtk/gtkwindow.c (gtk_window_activate_mnemonic):
(gtk_window_remove_mnemonic):
(gtk_window_add_mnemonic): fixed assertions.
(gtk_window_activate_mnemonic): constrain modifier checks to those
permitted by gtk_accelerator_get_default_mod_mask().
got rid of gtk_window_get_default_accel_group().
* gtk/gtkwidget.c (gtk_widget_real_activate_mnemonic): handle non
activatable widgets either by focussing or a warning.
added a signal accumulator to ::activate_mnemonic which stops the
emission once a handler returned TRUE.
2001-03-21 Alexander Larsson <alexl@redhat.com>
* gtk/gtkbutton.[ch]:
* gtk/gtkdialog.c:
Renamed gtk_button_new_stock() to gtk_button_new_from_stock() and
removed accel_group argument. Renamed gtk_button_new_accel() to
gtk_button_new_with_mnemonic() and removed accel_group argument.
* gtk/gtkcheckbutton.[ch]:
New function gtk_check_button_new_with_mnemonic().
* gtk/gtkentry.c:
Override activate_mnemonic and just grab focus.
* gtk/gtkitemfactory.c:
Don't add menu uline accel group, instead use mnemonics support.
* gtk/gtklabel.[ch]:
New support for mnemonics.
* gtk/gtkmarshal.list:
Needed BOOLEAN:BOOLEAN for activate_mnemonic.
* gtk/gtkmenu.[c]:
* gtkmenushell.c:
Use mnemonics instead of accel groups for uline
support in menu items.
Removed gtk_menu_get_uline_accel_group() and
gtk_menu_ensure_uline_accel_group().
* gtk/gtkmenuitem.c:
Override activate_mnemonic to handle switching between
menu items if there are collisions.
* gtk/gtknotebook.c:
Connect to activate_mnemonic on the tab_label, so that
activating it switches to that notebook page.
* gtk/gtkwidget.[ch]:
Add activate_mnemonic signal. New function
gtk_widget_activate_mnemonic() to emit it.
Default implementation does activate/grab_focus.
* gtk/gtkwindow.[ch]:
Add support for mnemonics in windows.
New functions:
gtk_window_add_mnemonic, gtk_window_remove_mnemonic,
gtk_window_activate_mnemonic, gtk_window_set_mnemonic_modifier
* gtk/testgtk.c:
Update to function name changes.
Sun Mar 18 01:15:30 2001 Tim Janik <timj@gtk.org>
* gtk/gtkspinbutton.[hc]: added rc-style argument
GtkSpinButton::shadow_type.
removed spin_button->shadow_type, gtk_spin_button_set_shadow_type()
and ARG_SHADOW_TYPE as it doesn' make much sense to try to override
rc-style settings.
* gtk/gtkfixed.c: removed gtk_fixed_paint() (was unused).
* gtk/gtkwidget.c: quark cleanups.
* gtk/gtkrc.[hc]: added gtk_rc_scanner_new() to create an rc-file
scanner with appropriate configuration, renamed GtkRcStyleClass.clone
to create_rc_style() (we don't do cloning in standard OO sense).
added per rc style properties.
* gtk/gtkstyle.[hc]: added code to retrive pspec conformant rc-style
property values and for caching those. some cleanups.
* gtk/Makefile.am: -DG_DISABLE_CONST_RETURNS.
* gtk/gtksettings.[hc]: new file for global rc-file properties
(at least currently, should get extended to support X properties
and other communication mechanisms).
* gtk/gtkwidget.[hc]: added style property support:
(gtk_widget_class_install_style_property_parser): install style
property pspec with parser function for rc-file values other
than LONG, DOUBLE or STRING.
(gtk_widget_class_install_style_property): same as above without
parser (parsers are going to be needed quite infrequently).
(gtk_widget_style_get_property): retrive style property value.
(gtk_widget_style_get_valist): same as above with varargs support,
has NOCOPY semantics.
(gtk_widget_style_get): wrapper around gtk_widget_style_get_valist().
2001-03-16 Havoc Pennington <hp@redhat.com>
* Applied patch from Nils Barth (bug # 51041) to
replace "gint" with "gboolean" and 0/1 with TRUE/FALSE
in various places.
2001-03-12 Havoc Pennington <hp@redhat.com>
* gtk/gtkiconfactory.h, gtk/gtkiconfactory.c: Switch to using an
enum with registration for icon sizes, instead of strings.
* gtkimage.h, gtkimage.c, gtkstyle.h, gtkstyle.c, gtkwidget.h,
gtkwidget.c: Fix to reflect GtkIconSize
Thu Mar 8 00:02:30 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] (gtk_widget_get_name): Make
G_CONST_RETURN.
* gtk/gtkwidget.[ch] gtk/gtkprivate.h: Add a
::hierarchy-changed signal when a widget changes
from anchored to unanchored or vice versa.
(anchored means
gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW) != NULL.)
Use a private flag to keep track of this efficiently.
Wed Mar 7 13:24:57 2001 Tim Janik <timj@gtk.org>
* gtk/*.c: marshaller fixes.
* gtk/gtkmarshal.list: extreme cleanup.
* gtk/gtktreeview.c (gtk_tree_view_class_init): disable interface
param spec for now.
* gtk/gtktexttag.c (gtk_text_tag_set_property): use g_value_get_boxed()
where appliable.
* gtk/gtktypeutils.[hc]: updates to GLib API changes.
special cased autogenerated boxed types from gtktypebuiltins_ids.c
which are not reference counted:
GtkSelectionData, GdkEvent, GdkColor, GtkTextIter, PangoTabArray,
PangoFontDescription, GtkTreeIter and GtkTreePath.
Thu Mar 1 03:58:56 2001 Tim Janik <timj@gtk.org>
* gtk/gtktreeselection.h:
* gtk/gtktreemodel.c:
* gtk/gtktreedatalist.[hc]: fixed includes. no gobject/*
file should be included directly, and gobject/gmarshal.h
as well as gtk/gtkmarshal.h even can't be included directly.
* Makefile.am: grr, install gtk-config-2.0.
* gtk/testgtk.c:
* gtk/simple.c:
* gtk/gtkmenu.c:
* gtk/gtkitemfactory.c: use g_object_connect() instead of
passing "*signal*::*" args to gtk_widget_set().
* gtk/gtktypeutils.[hc]: got rid of GTK_TYPE_SIGNAL.
* gtk/*.c: removed trailer arg from property setters and getters.
macro fixups.
Thu Mar 1 04:01:57 2001 Tim Janik <timj@gtk.org>
* test-gdk-pixbuf.c: fixed includes.
2001-02-28 Havoc Pennington <hp@redhat.com>
* gtk/gtkwidget.h (struct _GtkWidgetClass): Remove draw_focus and
draw_default
(gtk_widget_draw_focus): remove this function; we could instead
make it just gtk_widget_draw(), but in most cases I think the
result would be broken user code, so think it's better to have
that code not compile and get fixed
(gtk_widget_draw_default): ditto
* gtk/gtkwidget.c: Add default handlers for focus_in_event and
focus_out_event that set/unset GTK_HAS_FOCUS and call queue_draw
* gtk/gtkwindow.c (gtk_window_set_default): just queue a draw when
widgets lose/get the default, instead of calling draw_default
* docs/Changes-2.0.txt: note about all this
Then fixed every widget in GTK, I won't list all the filenames.
2001-02-26 Havoc Pennington <hp@redhat.com>
* gtk/testgtk.c: test the window state stuff
* gtk/gtkwindow.c (gtk_window_present): new function, makes a
window come to the user's attention as if it were just created
(gtk_window_iconify): new function
(gtk_window_deiconify): new function
(gtk_window_stick): new function
(gtk_window_unstick): new function
(gtk_window_maximize): new function
(gtk_window_unmaximize): new function
* gtk/gtkwidget.h, gtk/gtkwidget.c: add window_state_event signal
* gtk/gtkmain.c (gtk_main_do_event): handle GDK_WINDOW_STATE
* gdk/x11/gdkevents-x11.c: create window state events when
appropriate
(gdk_wmspec_supported): new function
* gdk/x11/gdkwindow-x11.c (gdk_window_iconify): handle
iconification before showing the window
(gdk_window_deiconify): new function
(gdk_window_stick): new function
(gdk_window_unstick): new function
(gdk_window_maximize): new function
(gdk_window_unmaximize): new function
* gdk/gdkwindow.c: store the window state in the window;
change to using the GDK_WINDOW_STATE_WITHDRAWN flag instead of
window->mapped.
(gdk_window_get_state): return the current window state
* gdk/gdkevents.c (gdk_event_get_time): handle GDK_WINDOW_STATE
(gdk_event_get_state): handle GDK_WINDOW_STATE
(gdk_synthesize_window_state): function to create the window state
events
* gdk/gdkevents.h (struct _GdkEventWindowState): new type of
event, for changes to "window state" such as maximized, sticky,
etc.
* gdk/x11/gdkwindow-x11.c (gdk_window_focus): new function,
focuses a window
* gdk/x11/gdkmain-x11.c (_gdk_wmspec_supported): new function,
finds out if we support a given WM spec hint
Tue Dec 12 23:46:44 2000 Tim Janik <timj@gtk.org>
* gtk/stock-icons/Makefile.am: doh, this was broken beyond believe.
* gtk/gtkbox.c: change property types from (u)long to (u)int for
::position and ::padding.
* gtk/gtkcontainer.c: make ::border_width an INT property.
* gtk/gtkpacker.c: make ::position an INT property.
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed):
guard against NULL h/v scrollbars, since this is used at construction
time.
* gtk/gtkclist.[hc]: nuked gtk_clist_construct(), implemented
internal gtk_clist_constructor().
* gtk/gtkctree.[hc]: nuked gtk_ctree_construct(), implemented
gtk_ctree_constructor().
* gtk/gtkprogressbar.c (gtk_progress_bar_class_init): property
::pulse_step should use ARG_PULSE_STEP, not ARG_FRACTION.
* docs/reference/Makefile.am: fun stuff, disabled docs generation
again, gtk-scan.c needs to introspec paramspecs, not GtkAgs.
* gtk/gtkwidget.[hc]:
removed gtk_widget_setv(), gtk_widget_getv(), gtk_widget_newv()
and gtk_widget_get().
(gtk_widget_new): use g_object_new_valist().
(gtk_widget_set): use g_object_set_valist().
* gtk/gtkobject.[hc]:
removed gtk_object_arg_get_info(), gtk_object_getv(),
gtk_object_query_args(), gtk_object_newv(),
gtk_object_class_add_signals(),
gtk_object_class_user_signal_new(),
gtk_object_class_user_signal_newv(),
gtk_object_arg_set(), gtk_object_arg_get(),
gtk_object_args_collect(),
gtk_object_default_construct(),
gtk_object_constructed(),
GTK_CONSTRUCTED and GTK_OBJECT_CONSTRUCTED().
removed nsignals, signals and n_args members from GtkObjectClass.
(gtk_object_new): use g_object_new_valist().
(gtk_object_set): use g_object_set_valist().
(gtk_object_get): use g_object_get_valist().
* gtk/gtkcompat.h: define gtk_object_default_construct().
* gtk/gtktypeutils.c (gtk_type_new): create constructed objects via
g_object_new().
* gtk/*.c: removed gtk_object_class_add_signals() from class_init()
fucntions, cleaned up method assignments (make sure your structures
are setup properly before calling out). removed all GTK_CONSTRUCTED
hacks ;)
Wed Oct 25 14:17:43 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] (gtk_widget_is_focus): Add a function
to determine if a window is the focus widget within
its toplevel.
* gtk/gtkcontainer.[ch]: Fix the return type of ::focus
to be boolean.
* gtk/gtkcontainer.c (gtk_container_real_focus): Move handling
of the case where the container CAN_FOCUS to here instead
of having it in each individual move-the-focus place.
* gtk/gtkcontainer.c: Rewrite handling of left-right and up-down
focusing to be geometric in a much more obvious sense. Arrowing
around is still non-intuitive because it isn't perfect and
because entries, etc, grab the arrow keys, but it at least
usually will do what you expect now.
* gtk/gtknotebook.[ch]: Many cleanups. Moved docs inline in this
file.
* gtk/gtknotebook.c: Change tabs to be a single item in
the focus chain. Make movement of focus on tabs with arrow
keys wrap around.
* gtk/gtknotebook.c (gtk_notebook_find_child): Add
CHECK_FIND_CHILD macro to give informative error messages
instead of silent returns.
* gtk/gtknotebook.c (gtk_notebook_init): Set the RECEIVES_DEFAULT
flag since we handle GdkReturn on the tabs.
* gtk/gtknotebook.c (gtk_notebook_expose_tabs): Invalidate
windows rather than sending expose events directly.
* gtk/gtknotebook.[ch] docs/Changes-2.0.txt: Move structure
definition for GtkNotebookPage into .c file, since it is private.
* gtk/testgtk.c (create_notebook): Add option for
testing borderless notebook.
* gtk/testgtk.c (page_switch): Removed egregious poking
around in GTK+ internals.
* docs/widget-system.txt: Remove references to GTK_REDRAW_PENDING.
* gtk/gtkclist.[ch]: Remove key press handler, handle focusing
properly through gtk_clist_focus. Make the title headers a
single item in the tab-focus chain, and make left-right wrap
around.
* gtk/gtkwindow.c (gtk_window_focus): Add a custom
focus method so that wrapping around works properly.
* gtk/gtktreeview.c: Remove calls to gtk_container_set_focus_child() -
that is handled for the widget now.
Tue Dec 5 15:49:31 2000 Owen Taylor <otaylor@redhat.com>
* INSTALL: Fix link to PNG home, remove reference
to fribidi.
* gdk/x11/gdkevents-x11.c: Fix up for new GMain API.
* gdk/win32/gdkevents-win32.c: Fix up for new GMain API. (Not
tested.)
* gtk/gtkcheckmenuitem.c: Permanently turn on
always_show_toggle.
* gtk/gtkclist.c (gtk_clist_get_pixtext): Allow mask to
be NULL. (Vladimir Klebanov, #26545)
* gtk/gtkspinbutton.c (gtk_spin_button_insert_text): Fix
some signed/unsigned comparison problems. (#6510,
David Kaelbling)
* gtk/gtkwidget.[ch] (gtk_widget_is_ancestor): Change
return type to boolean (Oskar Liljeblad, #18648)
2000-11-20 Havoc Pennington <hp@redhat.com>
* gtk/gtkwidget.c: Documented a bunch of functions in here
(gtk_widget_realize): Warn if you try to realize
a widget with no parent that isn't a toplevel
(gtk_widget_intersect): return a gboolean
2000-11-07 Havoc Pennington <hp@redhat.com>
* gtk/gtktextmark.c (gtk_text_mark_is_visible): rename
to gtk_text_mark_get_visible
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): fix
bug that was generating an invalid iterator
* gtk/gtktextiter.c (gtk_text_iter_get_offset): move call to
ensure_char_offsets() in front of code placing the iter in an
invalid state.
* gtk/gtktextbuffer.c (gtk_text_buffer_paste_primary):
make override_location arg const
(paste): Replace the selection if we paste into the
current selection
* gtk/gtkselection.h: Remove "GtkSelectioData"
(struct _GtkSelectionData): move the definition here.
* gtk/gtktextbuffer.c (gtk_text_buffer_update_primary_selection):
Export the GTK_TEXT_BUFFER_CONTENTS target for in-process copies
* gtk/gtktextiter.c (gtk_text_iter_get_tags): New function
* gtk/gtktextbuffer.c (gtk_text_buffer_insert_range): implement
(gtk_text_buffer_insert_range_interactive): implement
(gtk_text_buffer_get_tags): Remove, replaced by
gtk_text_iter_get_tags()
* gtk/gtktextiter.c (gtk_text_iter_forward_search): Add a search
limit parameter, to avoid infinite linear scan.
(gtk_text_iter_backward_search): Add search limit
(gtk_text_iter_forward_find_char): Add search limit
(gtk_text_iter_backward_find_char): Add search limit
2000-09-26 Havoc Pennington <hp@redhat.com>
* gtk/Makefile.am (gtk_private_h_sources): Move more text widget
headers into the private header list
* Makefile.am (pkgconfig_DATA): install pkg-config files
* configure.in: add pkg-config files
* gdk-2.0.pc.in, gdk-pixbuf.pc.in, gtk+-2.0.pc.in: pkg-config files
* gtk/gtkwindow.c (gtk_window_read_rcfiles): Invalidate
outstanding icon caches on theme change.
* gtk/gtkiconfactory.h, gtk/gtkiconfactory.c: New icon system. Three
important types:
(GtkIconSource): Specification for creating a pixbuf
appropriate for a direction/state/size triplet from
a source pixbuf or filename
(GtkIconSet): List of GtkIconSource objects that are used to
create the "same" icon (e.g. an OK button icon), and cache for
rendered icons
(GtkIconFactory): Hash from stock ID to GtkIconSet; used to look
up the icon set for a given stock ID. GTK maintains a stack of
GtkIconFactory to search, and applications or libraries can add
additional icon factories on top of the stack
* gtk/gtkrc.h, gtk/gtkrc.c: When loading an RcStyle, parse
the set of GtkIconSource specified for a given stock ID into
a GtkIconSet, and put the GtkIconSet into a GtkIconFactory for the
RcStyle, under the specified stock ID.
* gtk/gtkstyle.h, gtk/gtkstyle.c: Add a virtual function
render_icon used to derive a GdkPixbuf from a GtkIconSource.
This allows people to theme how prelight, insensitive, etc. are
done.
(gtk_style_lookup_icon_set): Look up a stock ID in the list of
icon factories for a style, and return the resulting
icon set if any.
(gtk_style_render_icon): Render an icon using the render_icon
method in the GtkStyleClass.
* gtk/gtkwidget.h, gtk/gtkwidget.c (gtk_widget_render_icon):
Use the style for a given widget to look up a stock ID, get the
icon set, and render an icon using the render_icon method
of the style
* gtk/gtkstock.h, gtk/gtkstock.c: Header with the GtkStockItem type
(contains information about a stock item), the built-in stock item
IDs, and functions to add/lookup stock items.
* gtk/stock-icons/*: Stock icons that come with GTK
* gtk/gtkbutton.h, gtk/gtkbutton.c (gtk_button_new_stock): Returns
a button based on a GtkStockItem
(gtk_button_new_accel): Takes a uline string and accel group, and
installs the accelerator.
* gtk/gtkimage.h, gtk/gtkimage.c: Make this into a generic
image-display widget.
Sun Sep 03 00:47:08 2000 George Lebl <jirka@5z.com>
* gtk/gtkwidget.h: Add some documenting comments about
GTK_CAN_DEFAULT, GTK_HAS_DEFAULT and GTK_RECEIVES_DEFAULT
just as owen said on irc.
* gtk/gtkwindow.c (gtk_window_set_default): Don't blindly
set HAS_DEFAULT. Only set it if there isn't another window
holding it (a focus window which RECEIVES_DEFAULT) and only unset
it if the widget is not the focused window with RECEIVES_DEFAULT.
This fixes weird double default bugs in dialogs which has things
call gtk_window_set_default at times.
Mon Aug 21 22:39:18 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch]: Add gtk_widget_modify_{fg,bg,text,base,font}.
* gtk/testgtk.c (create_styles): Add a test for modifying
the style through gtk_widget_modify_*.
* gtk/gtkwidget.c (gtk_widget_get_modifier_style): Add
a function to get the current modifier style.
* gtk/gtkwidget.c (gtk_widget_modify_style): Make a copy
of the passed in GtkRcStyle instead of ref'ing it.
* gtk/gtkrc.[ch]: Add gtk_rc_style_copy().
Wed Jul 26 12:59:31 2000 Tim Janik <timj@gtk.org>
* *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
updates the license headers to the GNU Lesser General Public License,
as well as updating the copyright year to 2000.
Sun Jul 2 18:19:50 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.[ch] (gtk_widget_create_pango_layout): Add a 'text' argument to
set the initial text.
* gtk/gtkaccellabel.c gtk/gtkcalendar.c gtk/gtkclist.c
gtk/gtkentry.c gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c
gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvruler.c
gtk/gtkvscale.c: Adapt to new argument of create_pango_layout().
* gtk/gtkclist.c (_gtk_clist_create_cell_layout): Use new
pango_layout_set_font_description to simplify.
Sun Jul 2 17:06:40 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcalendar.c gtk/gtkclist.c gtk/gtkctree.c gtk/gtkhscale.c
gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvscale.c gtk/gtkaccellabel.c: Use
pango_layout_get_pixel_extents() to remove a large number of '/ PANGO_SCALE'.
* gtk/gtk[hv]ruler.c gtk/gtklabel.c: replace some / PANGO_SCALE with
PANGO_PIXELS() macro.
Sun Jul 2 14:37:58 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtkoptionmenu.c (gtk_option_menu_size_request): Call
gtk_widget_size_request() on reparented child, if one. Otherwise,
queue_resize() on the child never results in it getting size-requested
at all.
* gtk/testgtk.c (build_option_menu): Remove silly radio-menu-items
in option menus, so that (with luck) people won't copy it into
their apps in the future.
* gtk/gtkoptionmenu.c: Connect ::size_request on the menu
to gtk_option_menu_calc_size. This isn't perfect, but should fix
a lot of problems with changing the size of the menu's menu
items after adding it to the option menu.
* gtk/gtktexttag.c: Include gtkmain.h for gtk_get_default_language().
* gtk/gtkwidget.[ch]: Add a ::direction_changed that triggers when
the text direction for a widget changes.
* gtk/gtk{entry.c,label.[ch],textview.[ch]} gtk/testgtk.c: Use
::direction_changed to get rid of various hacks.
Sun Jul 2 12:45:50 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.[ch]: Add gdk_rgb_find_color() to get a pixel
value using GdkRGB functionality given GdkColormap and GdkColor.
(name not final, waiting for inspiration.)
* gdk/gdkgc.[ch] (gdk_gc_set_rgb_fg/bg_color): New functions to
set the foreground/background of a GC using the GC's colormap
and GdkRGB. (name not final, waiting for inspiration.)
* gdk/gdkcompat.h gdk/gdkrgb.c (gdk_rgb_get_colormap): Rename from
gdk_rgb_get_cmap(), put #define in gdkcompat.h.
* gtk/gtkwidget.[ch] gtkcompat.h: Make visuals for
gtk_widget_get_visual(), gtk_widget_get_default_visual, etc,
purely a function of the corresponding colormap. Make
gtk_widget_set_visual(), etc, noop macros in gtkcompat.h.
* gdk/gdkpixmap.c gdk/x11/gdkpixmap-c11.c: Rewrite
gdk_pixbuf_*create_from_xpm_* in terms of
gdk_pixbuf_new_from_xpm_data(), move into platform independent
code.
* gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Take
advantage of the new draw_rgb_32_image_dithalign.
* gdk/gdkrgb.c (gdk_draw_rgb_32_image_dithalign): Added.
* gtk/gtkgc.c (gtk_gc_new): Set the appropriate colormap
on each created GC.
* gdk/gdkgc.[ch]: Add gdk_gc_get/set_colormap.
* gdk/gdkgc.[ch]: Add a colormap field to the GdkGC structure
which we initialize from the drawable when the GC is created,
if the drawable has a colormap.
* gdk/x11/gdkgc-x11.c: include string.h for memset.
* gdk/x11/gdkinput-x11.c: include string.h for strlen, etc.
* gtk/gtklayout.[ch]: Remove unsed configure serial member.