2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2005-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.[ch]: added API to set an event
snooper which, if set, receives any controller event first, even
if event dispatching is disabled for the controller.
* app/widgets/gimpcontrollereditor.[ch]: use the new API to
implement a "Grab Event" button, which takes the next event from
the controller and selects it in the event mapping tree view.
2005-05-09 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerlist.[ch]: new widget which allows
adding/removing controllers using two lists of available/active
controllers. Work in progress...
* app/widgets/gimpcontrollerinfo.[ch]: derive it from GimpVieable
so it can have an icon (unfinished). Added convenience constructor
gimp_controller_info_new().
* app/dialogs/preferences-dialog.c: use a GimpControllerList
instead of a notebook of GimpControllerEditors.
2004-11-24 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: guarded the whole header
with GIMP_ENABLE_CONTROLLER_UNDER_CONSTRUCTION because it's no
fixed API yet. Added a "state" property bacause "name" was abused
as the controller's state. Added "help_domain" to the controller
class.
* libgimpwidgets/gimpwidgets.h: don't include gimpcontroller.h
* modules/controller_linux_input.c
* modules/controller_midi.c: set the "name" property to the name
retrieved from the device, or to a default string if no name is
available. Store the status in the "state" property. Added and
changed some strings, but it's better to have the controller
strings untranslated than to have no tooltips at all or misleading
labels.
* app/widgets/gimpcontrollerkeyboard.c
* app/widgets/gimpcontrollerwheel.c: set default strings for both.
* app/widgets/gimpcontrollereditor.c: added a GUI for the "state"
property.
* app/widgets/gimpcontrollerkeyboard.h
* app/widgets/gimpcontrollerwheel.h
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: #define
GIMP_ENABLE_CONTROLLER_UNDER_CONSTRUCTION (just as in all files
above).
* app/widgets/gimphelp-ids.h: added the IDs of all controller
modules and also of all other modules. The defines are not
actually used, but this file is the canonical place to collect all
the core's help IDs.
2004-11-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.c (gimp_controller_info_init):
always create the event mapping table. Fixes tons of warnings and
non-functional controller mapping dialog when an empty controller
was deserialized from controllerrc. Spotted by drc.
2004-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.[ch]: added a boolean property
"debug-events" and honor it when printing debugging output.
Should add an event console window so the user doesn't need to
have a terminal to inspect input module output.
* app/gui/prefereces-dialog.c: HIGified some forgotten labels.
Renamed the "Pointer Movement Feedback" frame to "Mouse Cursors".
Replaced some forgotten "Dir" with "Folder".
Made more GimpControllerInfo and GimpController properties
editable and cleaned up the controller page.
2004-06-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpenumaction.[ch]
* app/widgets/gimppluginaction.[ch]
* app/widgets/gimpstringaction.[ch]: added parameters to the
gimp_*_action_selected() function so the "selected" signal can be
emitted with value != action->value. Changed GtkAction::activate()
implementations accordingly (pass action->value).
* app/widgets/gimpcontrollers.c: call gimp_enum_action_selected()
and pass the value of the GimpControllerEventValue instead of
temporarily replacing action->value and calling
gtk_action_activate().
* app/widgets/gimpcontrollerinfo.c: fixed debugging output.
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]: added gimp_boolean_handled_accum().
* app/core/gimp.c
* app/widgets/gimpcontrollerinfo.c: use it.
2004-06-17 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: removed "enabled"
property. Removed GIMP_CONTROLLER_PARAM_RERIALIZE from the "name"
property because it's the hardware-determined name of this
controller instance.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: set the name.
* libgimpwidgets/gimpwidgets.h: #include gimpcontroller.h.
* app/widgets/gimpcontrollerinfo.[ch]: added "enabled" here
instead. Don't dispatch events if the controller is
disabled. Made everything work (not crash) with info->mapping
being NULL.
* etc/controllerrc: updated again with the changed format.
* app/widgets/gimpcontrollers.[ch]: added
gimp_controllers_get_list() which returns the container of
controllers.
* app/widgets/gimphelp-ids.h
* app/gui/preferences-dialog.c: added controller configuration
(can't change anything yet, just view the current settings).
Resurrected the "Input Devices" page and removed the "Session"
page by moving its widgets to other pages. Pack the various
"Save now"/"Clear now" buttons vertically, not horizontally.
Fixes bug #139069.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/controllers.png
* themes/Default/images/preferences/theme.png: new icons for new
prefs pages. Someone needs to make them nice...
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added #define
GIMP_CONTROLLER_PARAM_SERIALIZE. Made all properties serializable.
* modules/controller_linux_input.c: made "device-name"
serializable.
* app/config/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_POINTER() which needs to be handled
by custom (de)serialize_property() implementations.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: made object (de)serialization
work for object properties which are *not* GIMP_PARAM_AGGREGATE.
Write/parse the exact type of the object to create to enable this.
* app/core/gimpmarshal.list: new marshaller for GimpControllerInfo.
* app/widgets/gimpcontrollerinfo.[ch]: implement GimpConfigInterface
and add "controller" and "mapping" properties. Add "event-mapped"
signal which carries the action_name.
* app/widgets/gimpcontrollers.c: removed all deserialization code
and simply (de)serialize the controller container. Install a
container handler for "event-mapped" and do the action_name ->
action mapping in the callback.
* etc/controllerrc: regenerated with new syntax. Delete your old one!
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added
GimpController::get_event_blurb() which returns the strings that
were returned by get_event_name(). The latter returns
untranslatable event identifiers now.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: changed accordingly.
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: changed the event mapping from
event-id -> action-name to event-name -> action-name.
* etc/controllerrc: changed accordingly (finally readable now).
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerinfo.[ch]: made an object out of
the GimpControllerInfo struct.
* app/widgets/gimpcontrollers.c: changed accordingly.