• Allison Karlitskaya's avatar
    add GtkMenuTrackerItem · a4276a6c
    Allison Karlitskaya authored
    Add a new class, GtkMenuTrackerItem that represents a menu item, to be
    used with GtkMenuTracker.
    
    GtkMenuTracker's insert callback now works in terms of this new type
    (instead of passing reference to the model and an index to the item).
    
    GtkMenuShell now handles all of the binding tasks internally, mostly
    through the use of property bindings.  Having bindings for the label and
    visibility attributes, in partiular, will help with supporting upcoming
    extensions to GMenuModel.
    
    GtkModelMenu has been reduced to a helper class that has nothing to do
    with GMenuModel.  It represents something closer to an "ideal" API for
    GtkMenuItem if we didn't have compatibility concerns (eg: not emitting
    "activate" when setting toggle state, no separate subclasses per menu
    item type, supporting icons, etc.) Improvements to GtkMenuItem could
    eventually shrink the size of this class or remove the need for it
    entirely.
    
    Some GtkActionHelper functionality has been duplicated in
    GtkMenuTracker, which is suboptimal.  The duplication exists so that
    other codebases (such as Unity and gnome-shell) can reuse the
    GtkMenuTracker code, whereas GtkActionHelper is very much tied to
    GtkWidget.  Supporting binding arbitrary GtkWidgets to actions vs.
    supporting the full range of GMenuModel features for menu items turns
    out to be two overlapping but not entirely similar problems.  Some of
    the duplication (such as roles) can be removed from GtkActionHelper once
    Gtk's internal Mac OS menubar support is ported to GtkMenuTracker.
    
    The intent to reuse the code outside of Gtk is also the reason for the
    unusual treatment of the enum type introduced in this comment.
    
    This adds no new "public" API to the Gtk library, other than types that
    we cannot make private due to GType limitations.
    a4276a6c
Name
Last commit
Last update
build Loading commit data...
demos Loading commit data...
docs Loading commit data...
examples Loading commit data...
gdk Loading commit data...
gtk Loading commit data...
libgail-util Loading commit data...
m4 Loading commit data...
m4macros Loading commit data...
modules Loading commit data...
perf Loading commit data...
po Loading commit data...
po-properties Loading commit data...
tests Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog.gtk-async-file-chooser Loading commit data...
ChangeLog.gtk-printing Loading commit data...
ChangeLog.pre-1-0 Loading commit data...
ChangeLog.pre-1-2 Loading commit data...
ChangeLog.pre-2-0 Loading commit data...
ChangeLog.pre-2-10 Loading commit data...
ChangeLog.pre-2-12 Loading commit data...
ChangeLog.pre-2-14 Loading commit data...
ChangeLog.pre-2-16 Loading commit data...
ChangeLog.pre-2-2 Loading commit data...
ChangeLog.pre-2-4 Loading commit data...
ChangeLog.pre-2-6 Loading commit data...
ChangeLog.pre-2-8 Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
Makefile.decl Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-0 Loading commit data...
README.commits Loading commit data...
README.in Loading commit data...
README.win32 Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
config.h.win32.in Loading commit data...
configure.ac Loading commit data...
gail-3.0.pc.in Loading commit data...
gdk-3.0.pc.in Loading commit data...
git.mk Loading commit data...
gtk+-3.0.pc.in Loading commit data...
gtk+-unix-print-3.0.pc.in Loading commit data...
gtk+.doap Loading commit data...
gtk+.spec.in Loading commit data...
gtk-engine-check-abi.sh Loading commit data...
gtk-zip.sh.in Loading commit data...
makecopyright Loading commit data...
makefile.msc Loading commit data...
sanitize-la.sh Loading commit data...
sanity_check Loading commit data...