SuperTux Editor
===============

* use System.Drawing.Point/Rectangle/Size/etc. instead of manual
  messing with width/height or our own classes

* in SectorRenderer rename ILayer variables to layer or something else

* Object Tool should behave more like Inkscape:

  - LMB on an object to select
  - LMB on the background to start a select-rectangle
  - LMB+move to drag objects it around
  - Shift+LMB to add an object to the selection
  - RMB for context menu

* Select Tool should be removed (identical to Object Tool)

* replace tool crashes:

  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.Object,System.Single].get_Item (System.Object key) [0x00000] 
  at LayerListWidget.VisibilityDataFunc (Gtk.TreeViewColumn Column, Gtk.CellRenderer Renderer, TreeModel Model, TreeIter Iter) [0x00000] 
  at GtkSharp.TreeCellDataFuncWrapper.NativeCallback (IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.TreeCellDataFuncWrapper.NativeCallback(IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Application.Main(System.String[] args)


DEBUG: UndoManager.AddCommand(Replace Tiles on Tilemap "Interactive")
DEBUG: UndoManager.AddCommand(Replace Tiles on Tilemap "Interactive")
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.Object,System.Single].get_Item (System.Object key) [0x00000] 
  at LayerListWidget.VisibilityDataFunc (Gtk.TreeViewColumn Column, Gtk.CellRenderer Renderer, TreeModel Model, TreeIter Iter) [0x00000] 
  at GtkSharp.TreeCellDataFuncWrapper.NativeCallback (IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.TreeCellDataFuncWrapper.NativeCallback(IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Application.Main(System.String[] args)


DEBUG: UndoManager.AddCommand(Moved Object SequenceTrigger)
DEBUG: ObjectsEditor:MakeActive(ObjectsTool+ControlPoint)
DEBUG: UndoManager.AddCommand(Moved Object ObjectsTool+ControlPoint)
DEBUG: ObjectsEditor:MakeActive(SequenceTrigger)
Stacktrace:

  at (wrapper managed-to-native) System.MonoType.getFullName (bool,bool) <0x00004>
  at (wrapper managed-to-native) System.MonoType.getFullName (bool,bool) <0xffffffff>
  at System.MonoType.ToString () <0x00014>
  at object.ToString () <0x00019>
  at string.Concat (object,object,object) <0x0004b>
Bus error


INFO:  Using configfile: /home/ingo/.config/supertux-editor/settings.xml
INFO:  Supertux is run as: /home/ingo/projects/supertux/svn/trunk/supertux/supertux2
INFO:  Data files are in: /home/ingo/projects/supertux/svn/trunk/supertux/data/
Stacktrace:

  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke (object,object[],System.Exception&) <0x00004>
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke (object,object[],System.Exception&) <0xffffffff>
  at System.Reflection.MonoMethod.Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x000a4>
  at System.Reflection.MethodBase.Invoke (object,object[]) <0x00025>
  at System.Delegate.DynamicInvokeImpl (object[]) <0x0018a>
  at System.MulticastDelegate.DynamicInvokeImpl (object[]) <0x00034>
  at System.Delegate.DynamicInvoke (object[]) <0x00019>
  at GLib.Signal.ClosureInvokedCB (object,GLib.ClosureInvokedArgs) <0x00120>
  at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs) <0x00023>
  at GLib.SignalClosure.MarshalCallback (intptr,intptr,uint,intptr,intptr,intptr) <0x0020c>
  at (wrapper native-to-managed) GLib.SignalClosure.MarshalCallback (intptr,intptr,uint,intptr,intptr,intptr) <0xffffffff>
  at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004>
  at (wrapper managed-to-native) Gtk.Application.gtk_main () <0xffffffff>
  at Gtk.Application.Run () <0x0000a>
Bus error


DEBUG: UndoManager.AddCommand(Created Object 'SmartBall')
DEBUG: ObjectsEditor:MakeActive(SmartBall)
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
  at System.Collections.Generic.Dictionary`2[System.Object,System.Single].get_Item (System.Object key) [0x00000] 
  at LayerListWidget.VisibilityDataFunc (Gtk.TreeViewColumn Column, Gtk.CellRenderer Renderer, TreeModel Model, TreeIter Iter) [0x00000] 
  at GtkSharp.TreeCellDataFuncWrapper.NativeCallback (IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data) [0x00000] 
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, Boolean is_terminal)
   at GtkSharp.TreeCellDataFuncWrapper.NativeCallback(IntPtr tree_column, IntPtr cell, IntPtr tree_model, IntPtr iter, IntPtr data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Application.Main(System.String[] args)

* Replace Tool should document its functions in a status bar message

* Path Tool doesn't seem to do anything

  -> the path tool requires a click on a path node before it starts to
     do anything

* Tiles Tool doesn't display the current tile

* add a Sector Menu in the main menubar containing all that stuff
  currently hidden in right-click on the sector tab:

  New Sector
  Delete Sector
  Resize Sector
  Sector Properties
  Camera Properties
  ...

* make Object Properties a separate Window, instead of having it in a
  VPaned (having it dockable like in Gimp would be best, but likely to
  complicated to do in Gtk+)

* whats the point of empty interfaces (IGameObject)?

  -> seem to be used to pass IGameObjects around in code that doesn't
     care about specifics of the GameObject

  -> they seem to be bad style: http://msdn.microsoft.com/en-us/library/ms182128%28VS.80%29.aspx

* move source code to src/

* split external stuff to external/

* what about some line-breaking to avoid >150 characters per line?

* Do we use the SceneGraph stuff? -> yes, we do

* Which code-style/style-guide do we follow?

  -> "astyle -t8" seems to get close enough to whatever we are using

* Why TileBlock::SaveData and not just a full clone of TileBlock?

* Use one file per class

* LispChild attributes seems a little impractical right now, as they
  code to handle them is larger then the code to do it manually

* "using Gtk" wouldn't it be better to avoid that and use fully
  qualified names instead for better readability?

* should delegate types be declared outside of a class or inside of it?

* Add middle button scroll to the TileSelector

* split up Application

* how do we generate docs for C#?

* use ZoomTo() for scroll wheel

* Display mouse coordinates somewhere, both in pixels and in tiles

* add check if graphic card supports non-power-of-two

* clip the background to level boundaries

* tilemaps need names (background, foreground, secret1, etc.)

* layer list should be reversed, with background at the bottom

* hove something to define tiles as equal and then a tool to shuffle
  them to get more randomness

* add a vissible tile-grid

* refactor code a bit more to allow MDI interface

* add Gimp-like mini-toolbar to the layerdialog

* add a group select (like in the TileSelector) to the ObjectSelector
  (All, Decal, Badguys, Particleeffects, etc.)

* remove handle boxes

* add support for multiple object layer

* add support for parallax scrolling decal

* do not limit scrolling so much when zoomed out

* implement Background::alignment

# EOF #
