]> O.S.I.I.S - jp/crow.git/commitdiff
DbgEvents base MeasureWhenDiscarded
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 21 Mar 2018 08:45:46 +0000 (09:45 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Wed, 21 Mar 2018 08:45:46 +0000 (09:45 +0100)
CrowIDE/CrowIDE.csproj
CrowIDE/src/CrowIDE.cs
CrowIDE/src/DesignInterface.cs
CrowIDE/src/ProjectTree/ImlProjectItem.cs
CrowIDE/ui/CrowIDE.crow
CrowIDE/ui/DockWindows/winDbgEvts.crow [new file with mode: 0644]
CrowIDE/ui/IDE.style
q [new file with mode: 0644]
src/DebugEvents/DebugEvent.cs
src/GraphicObjects/Wrapper.cs
src/Interface.cs

index c1c92cde345af787c1cc5dbb50c87d091d4a54ba..1a5ccda588bd14d388c267560f85fa3f37079338 100644 (file)
     <EmbeddedResource Include="ui\DockWindows\winStyleView.crow" />
     <EmbeddedResource Include="ui\CategoryExp.template" />
     <EmbeddedResource Include="ui\DockWindows\winDesign.crow" />
+    <EmbeddedResource Include="ui\DockWindows\winDbgEvts.crow" />
   </ItemGroup>
   <ItemGroup>
     <None Include="ui\test.crow">
index 0332592deb5f9e213824dfd7ea4bcfec4ef4d684..e371379bd998b7af1df22e6e044c7a85cb405a20 100644 (file)
@@ -42,7 +42,7 @@ namespace Crow.Coding
                CMDUndo, CMDRedo, CMDCut, CMDCopy, CMDPaste, CMDHelp,
                CMDAbout, CMDOptions,
                CMDViewGTExp, CMDViewProps, CMDViewProj, CMDViewProjProps, CMDViewErrors, CMDViewSolution, CMDViewEditor, CMDViewProperties,
-               CMDViewToolbox, CMDViewSchema, CMDViewStyling,CMDViewDesign,
+               CMDViewToolbox, CMDViewSchema, CMDViewStyling,CMDViewDesign,CMDViewDbgEvts,
                CMDCompile;
 
                void initCommands () {
@@ -78,6 +78,8 @@ namespace Crow.Coding
                        { Caption = "IML Shematic View", CanExecute = true};
                        CMDViewStyling = new Command(new Action(() => loadWindow ("#Crow.Coding.ui.DockWindows.winStyleView.crow",this)))
                        { Caption = "Styling Explorer", CanExecute = true};
+                       CMDViewDbgEvts = new Command(new Action(() => loadWindow ("#Crow.Coding.ui.DockWindows.winDbgEvts.crow",this)))
+                       { Caption = "Debug Events Explorer", CanExecute = true};
                                
                        CMDViewGTExp = new Command(new Action(() => loadWindow ("#Crow.Coding.ui.DockWindows.winGTExplorer.crow")))
                        { Caption = "Graphic Tree Explorer", CanExecute = false};
index 9ac9e9a5ab1c259c863f7bd623053d5edc793f56..532d7f3d9f2558fa706b1c34b99eb37a78f8f29b 100644 (file)
@@ -158,13 +158,16 @@ namespace Crow.Coding
        
                protected override void processLayouting ()
                {
-                       #if DBG_EVENTS
-                       DbgStartSubEvt(DbgEvtType.IFaceLayouting);
-                       #endif
-
                        if (Monitor.TryEnter (LayoutMutex)) {
                                DiscardQueue = new Queue<LayoutingQueueItem> ();
                                LayoutingQueueItem lqi;
+                               #if DBG_EVENTS
+                               bool logLayouting = false;
+                               if (LayoutingQueue.Count > 0){
+                                       DbgStartSubEvt(DbgEvtType.IFaceLayouting);
+                                       logLayouting = true;
+                               }
+                               #endif
                                while (LayoutingQueue.Count > 0) {
                                        lqi = LayoutingQueue.Dequeue ();
                                        #if DBG_EVENTS
@@ -175,14 +178,18 @@ namespace Crow.Coding
                                        DbgEndSubEvt();
                                        #endif
                                }
+                               #if DBG_EVENTS
+                               if (logLayouting)
+                                       DbgEndSubEvt();
+                               #endif
                                LayoutingQueue = DiscardQueue;
                                Monitor.Exit (LayoutMutex);
                                DiscardQueue = null;
                        }
-
-                       #if DBG_EVENTS
-                       DbgEndSubEvt();
-                       #endif
+               }
+               public override string ToString ()
+               {
+                       return string.Format ("DI");
                }
        }
 }
index 0575d17792e15ef59bc953838355a33aa3d9a652..c8d9aaded9cbfeb844c6ec46dfdf6d866ca78ff4 100644 (file)
@@ -81,6 +81,10 @@ namespace Crow.Coding
                        get { return new List<GraphicObject> (new GraphicObject[] {instance}); }
                }
 
+               public List<DebugEvent> DebugEvents {
+                       get { return instance?.IFace.PerThreadCurDbgEvt.ToList(); }
+               }
+
                void GTView_SelectedItemChanged (object sender, SelectionChangeEventArgs e){
                        SelectedItem = e.NewValue;
                }
index d721ac361b1c98de27c052c3221aac1b62b815bc..85f90656c0e5fdb760ebaa72975c2e5cf21e6fc6 100644 (file)
@@ -28,6 +28,7 @@
                                <MenuItem Command="{CMDViewErrors}"/>
                                <MenuItem Command="{CMDViewGTExp}"/>
                                <MenuItem Command="{CMDViewSchema}"/>
+                               <MenuItem Command="{CMDViewDbgEvts}"/>
                        </MenuItem>
                        <MenuItem Caption="Project" Fit="true" PopWidth="120">
                                <MenuItem Command="{CMDCompile}"/>
diff --git a/CrowIDE/ui/DockWindows/winDbgEvts.crow b/CrowIDE/ui/DockWindows/winDbgEvts.crow
new file mode 100644 (file)
index 0000000..3e8aed2
--- /dev/null
@@ -0,0 +1,122 @@
+<?xml version="1.0"?>
+<DockWindow Name="winLQIs" Caption="Layouting Queue Items Explorer" Width="90%" Height="80%">
+       <VerticalStack DataSource="{CurrentSolution}">
+               <TreeView DataSource="{SelectedItem}" Name="treeView" Data="{DebugEvents}">
+                       <ItemTemplate DataType="Crow.DebugEvent" Data="ChildEvents">
+                               <Expandable >
+                                       <Template>
+                                               <VerticalStack Spacing="1">                                                     
+                                                       <HorizontalStack Spacing="1" MouseDoubleClick="./onClickForExpand">
+                                                               <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+                                                                       Path="{./Image}"
+                                                                       Visible="{./IsExpandable}"
+                                                                       SvgSub="{./IsExpanded}"
+                                                                       MouseEnter="{Background=LightGray}"
+                                                                       MouseLeave="{Background=Transparent}"/>
+                                                               <Label Style="DbgGridCell" Text="{ThreadId}" Width="18" />
+                                                               <Label Style="DbgGridCell" Text="{EventType}" Width="90" />
+                                                               <Label Style="DbgGridCell" Text="{Ticks}" Width="60" TextAlignment="Right"/>
+                                                               <Label Text="{Message}" Width="Stretched" Background="White" Foreground="Black"/>                               
+                                                       </HorizontalStack>                                                      
+                                                       <Container Name="Content" Visible="false"/>
+                                               </VerticalStack>
+                                       </Template>
+                                       <HorizontalStack Height="Fit">
+                                               <GraphicObject Width="8" Height="10"/>
+                                               <VerticalStack Height="Fit" Name="ItemsContainer"/>
+                                       </HorizontalStack>
+                               </Expandable>
+                       </ItemTemplate>
+                       <ItemTemplate DataType="Crow.LayoutingDebugEvent">
+                               <Expandable >
+                                       <Template>
+                                               <VerticalStack Spacing="1">                                                     
+                                                       <HorizontalStack Spacing="1" MouseDoubleClick="./onClickForExpand">
+                                                               <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+                                                                       Path="{./Image}"
+                                                                       Visible="{./IsExpandable}"
+                                                                       SvgSub="{./IsExpanded}"
+                                                                       MouseEnter="{Background=LightGray}"
+                                                                       MouseLeave="{Background=Transparent}"/>
+                                                               <Label Style="DbgGridCell" Text="{LayoutingType}" Width="60"/>
+                                                               <Label Style="DbgGridCell" Text="{EndResult}" Width="60"/>
+                                                               <Label Style="DbgGridCell" Text="{Ticks}" Width="60" TextAlignment="Right"/>
+                                                               <Label Style="DbgGridCell" Text="{Target}" Width="30%" Tooltip="{Target}"/>
+                                                               <Label Style="DbgGridCell" Text="{PreviousSlot}" Width="100"/>
+                                                               <Label Style="DbgGridCell" Text="{Slot}" Width="100"/>
+                                                       </HorizontalStack>                                                      
+                                                       <Container Name="Content" Visible="false"/>
+                                               </VerticalStack>
+                                       </Template>
+                                       <HorizontalStack Height="Fit">
+                                               <GraphicObject Width="8" Height="10"/>
+                                               <VerticalStack Height="Fit" Name="ItemsContainer"/>
+                                       </HorizontalStack>
+                               </Expandable>
+                       </ItemTemplate>
+               </TreeView>
+       </VerticalStack>
+</DockWindow>
+
+<!--           <ItemTemplate DataType="Crow.LayoutingQueueItem" Data="triggeredLQIs">
+                       <Expandable>
+                               <Template>
+                                       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+                                               <VerticalStack Fit="true" Margin="3" Background="DimGray"
+                                                               HorizontalAlignment="Left"
+                                                               MouseEnter="{Background=hgradient|0:BlueCrayola|1:Transparent}"
+                                                               MouseLeave="{Background=DimGray}">
+                                                       <Label Text="{FullName}" Font="droid, 8" Background="LightGray" Foreground="Black"/>
+                                                       <HorizontalStack Fit="true" Spacing="10">
+                                                               <Label Text="{LayoutingTries}" Foreground="SkyBlue"/>
+                                                               <Label Text="{DiscardCount}" Foreground="Red"/>
+                                                               <Label Text="{Name}" Font="droid bold"/>
+                                                               <Label Text="{LayoutType}" Foreground="Maize"/>
+                                                               <Label Text="{Width}"/>
+                                                               <Label Text="{Height}"/>
+                                                       </HorizontalStack>
+
+                                                       <HorizontalStack Fit="true">
+                                                               <Label Text="{Slot}"/>
+                                                               <Label Text=" => "/>
+                                                               <Label Text="{NewSlot}"/>
+                                                       </HorizontalStack>
+                                                       <GraphicObject Background="SeaGreen" Height="3" Visible="{HasTriggeredLQIs}"/>
+                                               </VerticalStack>
+                                               <Container Name="Content" Visible="false" HorizontalAlignment="Left"
+                                                               Fit="true"/>
+                                       </VerticalStack>
+                               </Template>
+                               <HorizontalStack Height="Fit" Width="Fit">
+                                       <GraphicObject Width="20" Height="10"/>
+                                       <TreeView Name="List" Height="Fit" Width="Fit"
+                                               Template="#Crow.Templates.treeList.crow" />
+                               </HorizontalStack>
+                       </Expandable>
+               </ItemTemplate>
+               <ItemTemplate DataType="Crow.LQIList" Data="GetRootLQIs">
+                       <Expandable Caption="{}" >
+                               <Template>
+                                       <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+                                               <HorizontalStack Spacing="1" Height="Fit" Width="{./WidthPolicy}"
+                                                               MouseEnter="{Background=hgradient|0:BlueCrayola|1:Transparent}"
+                                                               MouseLeave="{Background=Transparent}">
+                                                       <Image Margin="2" Width="12" Height="12"
+
+                                                               Path="{./Image}"
+                                                               SvgSub="{./IsExpanded}"/>
+                                                       <Label Text="{./Caption}" Width="{./WidthPolicy}"/>
+                                               </HorizontalStack>
+                                               <Container Name="Content" Visible="false"
+                                                               Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
+                                       </VerticalStack>
+                               </Template>
+                               <HorizontalStack Height="Fit" Width="{./WidthPolicy}">
+                                       <GraphicObject Width="12" Height="10"/>
+                                       <TreeView Name="List" Height="Fit" Width="{./WidthPolicy}"
+                                               Template="#Crow.Templates.treeList.crow" />
+                               </HorizontalStack>
+                       </Expandable>
+               </ItemTemplate>
+       </TreeView>
+</Window>-->
index 22387808ee70097a96bc26ee6e87a4deaf9d74e9..71ba57fe9ca34d3425b84c9e7e7dc5b4b92487e8 100644 (file)
@@ -50,3 +50,9 @@ TreeIcon {
        Width="14";
        Height="14";
 }
+
+DbgGridCell {
+       Background="White";
+       Foreground="Black";
+       Font="mono, 10";
+}
\ No newline at end of file
diff --git a/q b/q
new file mode 100644 (file)
index 0000000..3eb8bd7
--- /dev/null
+++ b/q
@@ -0,0 +1,1198 @@
+*   \e[33m0bfa870\e[m\e[33m (\e[m\e[1;35mrefs/stash\e[m\e[33m)\e[m WIP on MeasureWhenDiscarded: 57010b2 Debug Events
+\e[31m|\e[m\e[32m\\e[m  
+\e[31m|\e[m * \e[33m22ed555\e[m index on MeasureWhenDiscarded: 57010b2 Debug Events
+\e[31m|\e[m\e[31m/\e[m  
+* \e[33m57010b2\e[m\e[33m (\e[m\e[1;36mHEAD -> \e[m\e[1;32mMeasureWhenDiscarded\e[m\e[33m)\e[m Debug Events
+* \e[33mb6204f7\e[m\e[33m (\e[m\e[1;31morigin/MeasureWhenDiscarded\e[m\e[33m)\e[m dockwin bug solve
+* \e[33m570d118\e[m go.UpdateLayout position improvment
+* \e[33mf381a7a\e[m add fit first
+* \e[33mb40c72b\e[m wip
+* \e[33mb1810f1\e[m\e[33m (\e[m\e[1;32mRequestedLayoutings\e[m\e[33m)\e[m testing with requestedLayouting field
+* \e[33mc94c0f4\e[m\e[33m (\e[m\e[1;31morigin/devel\e[m\e[33m, \e[m\e[1;32mdevel\e[m\e[33m)\e[m debug dockwin bug
+\e[32m|\e[m * \e[33m17b8993\e[m\e[33m (\e[m\e[1;32mAllStretchedInFitGroup\e[m\e[33m)\e[m lqi explorer wip
+\e[32m|\e[m * \e[33mabf38d1\e[m crowide lqi explorer
+\e[32m|\e[m * \e[33m87a8c6c\e[m go.UpdateLayout position improvment
+\e[32m|\e[m * \e[33mca044e1\e[m\e[33m (\e[m\e[1;32mDbgEvent\e[m\e[33m)\e[m add fit first
+\e[32m|\e[m * \e[33m82258b8\e[m wip
+\e[32m|\e[m * \e[33mdbc6b7e\e[m testing with requestedLayouting field
+\e[32m|\e[m\e[32m/\e[m  
+* \e[33m349026b\e[m print deleted and discarded>2 lqis
+* \e[33m81f1c76\e[m root data level
+* \e[33mbd9262e\e[m remove docker, floating dockingwin should be added to iface
+* \e[33md02e2c7\e[m scroller x, ide wip
+* \e[33mb5a4ff3\e[m imledit overlay icon
+* \e[33m3afeacb\e[m slider small increment accuracy
+* \e[33mf24ed33\e[m dragndrop of GObjs
+* \e[33m5f1d021\e[m limit to html safe color plus several ones, crowIDE wip
+* \e[33m99d63b9\e[m test with simpler text buffer
+* \e[33m1c2da8c\e[m split ProjectNode classes in separate files
+* \e[33mce0ae69\e[m code color
+* \e[33m407690e\e[m getStremFromPath made instanced for overriding in designiface, crowide wip
+* \e[33mfd3397c\e[m undo/redo, hscrollbar
+* \e[33m2e540d7\e[m editor abstract base class, svgeditor base
+* \e[33m844e586\e[m crow ide toolbox, syntax tree depth and generalize node handling accross parser
+* \e[33m50c1a39\e[m csharp parser wip
+* \e[33m48057d1\e[m folding closing node draw
+* \e[33m60c257e\e[m folding level
+* \e[33m882f6d3\e[m debug stack sizing with linq returning neg value
+* \e[33mbb765b7\e[m inflate bounds of splitter for PointIsIn check
+* \e[33m1c54ec3\e[m Height and Width of GO major change for stacking, docker improvement and simplification
+* \e[33mf560821\e[m tab sizing adjustment
+* \e[33m2946503\e[m tabview drag and drop of tabitem
+* \e[33md83f40c\e[m tab improvments
+* \e[33m363b942\e[m first test with docker in CrowIDE
+* \e[33m697f38b\e[m docker debug
+* \e[33mbd603bf\e[m center docking
+* \e[33m6df32af\e[m docker wip
+* \e[33m18df3ae\e[m close win in group debug
+* \e[33m31b423b\e[m clear Slot when parent change in go, docker wip
+* \e[33m27232cf\e[m crowIde wip, docker wip, stack remove child debug
+* \e[33m523d727\e[m CrowIDE wip, removed key repeat already handled by otk
+* \e[33m5e055f1\e[m update source editor with font height = ascent + descent
+* \e[33m14b1bb4\e[m label size adjust, modal window, crowIDE wip
+* \e[33md5cf794\e[m\e[33m (\e[m\e[1;31morigin/StyleModif\e[m\e[33m, \e[m\e[1;32mStyleModif\e[m\e[33m)\e[m change styling grammar for value now enclose in double quote
+* \e[33m8e82014\e[m change style grammar for value, editor parser ok
+* \e[33m508b53d\e[m crowide wip, DesignIDS
+* \e[33mf4c05f6\e[m in design saving of GraphicObject
+* \e[33mfb86652\e[m design mode, crowide wip, style parser (nok)
+* \e[33maf3a87e\e[m change namespace of CrowIDE to Crow.Coding, move editor source inside, crowIde wip
+* \e[33m1293bc8\e[m rename CurrentInterface to IFace
+* \e[33m915c811\e[m instantiators dictionary no longer static but local to Interface
+* \e[33m2221764\e[m crowIDE wip, lock layouting for items loading in tg
+* \e[33mb24c3ed\e[m add test if run on Mono, throw exception if not
+* \e[33m351bb39\e[m\e[33m (\e[m\e[1;31morigin/master\e[m\e[33m, \e[m\e[1;31morigin/HEAD\e[m\e[33m, \e[m\e[1;32mmaster\e[m\e[33m)\e[m prepare 0.7.1 release
+* \e[33mb53838e\e[m implement ReaderWritelLockSlim to resolve threading issues
+* \e[33mb184722\e[m add shadow to color selector pointer
+* \e[33mbccbfc1\e[m\e[33m (\e[m\e[1;33mtag: 0.7.0\e[m\e[33m)\e[m debug
+* \e[33ma57e96c\e[m prepare 0.7 release
+* \e[33md8367a3\e[m\e[33m (\e[m\e[1;31morigin/singleLeveledTemplatedGroup\e[m\e[33m, \e[m\e[1;32msingleLeveledTemplatedGroup\e[m\e[33m)\e[m debug threading with new TemplatedGroup arch, review examples.
+* \e[33m0ce668c\e[m docking
+* \e[33m6e9926f\e[m tabview debug, never set focusedIdx to -1, should find another way to known if event have to be routed up to the Opentk app
+* \e[33m2674a32\e[m update tabview with new mouse is in test
+* \e[33m25a6995\e[m try to make tg loading multithreaded, thread sync probs
+* \e[33mbefe7d8\e[m drag and drop operations
+* \e[33m0ba19d7\e[m '/' handling to start at current node in BindingMember, test drag and drop
+* \e[33m5d4fff0\e[m remove no longer usefull registerItemClicked
+* \e[33m53a4e64\e[m mouse event revamping, fit measure unit change from Pixels to Percent
+* \e[33m446acf1\e[m add some debug msg, prevent mouse evt on label not selectable
+* \e[33ma374027\e[m first working test with hierarchical TemplatedGroup with only one root Level
+\e[33m|\e[m * \e[33mca0d93a\e[m\e[33m (\e[m\e[1;31morigin/switch\e[m\e[33m, \e[m\e[1;32mswitch\e[m\e[33m)\e[m switch
+\e[33m|\e[m\e[33m/\e[m  
+* \e[33m3a9f41d\e[m crowIDE wip
+* \e[33mf57136b\e[m styling, checkbox used in popper
+* \e[33mab3c362\e[m focusParent
+* \e[33mfbfd6df\e[m InstantiatorException with file name
+* \e[33m3c0818c\e[m mouse move debug + load all assemblies in bin dir
+* \e[33me71e23b\e[m code clean
+* \e[33m6071933\e[m CrowIDE WIP, context commands, tooltips, PointIsIn(ref point), configuration no longer static.
+* \e[33mfab5313\e[m styling is no longer static in iface to allow different styling context between ifaces
+* \e[33m01cdc32\e[m CrowIDE, ObservableList, include Crow.Coding
+* \e[33m673466d\e[m made SeletedItem of templatedGroup writable
+* \e[33md783669\e[m Squashed commit devel branch:
+* \e[33m8678c71\e[m shape widget scrollbar improvments debug:perform mousemove event if mouseup had active widget.
+* \e[33meb481b4\e[m file dialog improvments, window title colors property in window class
+* \e[33mef49ffc\e[m :book: , renames, move some controls to other project file
+* \e[33me9c3f48\e[m :book:, default item template loading if none defined for TemplatedGroup
+* \e[33mea04e4d\e[m Update README.md
+* \e[33m41f95a2\e[m :book:, ItemTemplate files handling with multime root, Content made mandatory in TemplatedContainer
+* \e[33m3baf8a3\e[m :book: tutorials and some small improvements (iml fragment loading helpers
+* \e[33mf7b7110\e[m xunit basic setup
+* \e[33mc686be8\e[m :book: use own compiled opentk and remove nuget config
+* \e[33m11e428d\e[m cairo mesh pattern, docker tests
+* \e[33m837aa78\e[m share Picture resource data among widgets
+\e[34m|\e[m * \e[33md3ffc6c\e[m\e[33m (\e[m\e[1;31morigin/DockingViewTests\e[m\e[33m, \e[m\e[1;32mDockingViewTests\e[m\e[33m)\e[m debug after rebase
+\e[34m|\e[m * \e[33mee9971f\e[m\e[33m (\e[m\e[1;32mDVT\e[m\e[33m)\e[m tests in welcome.crow
+\e[34m|\e[m * \e[33m6fdeed3\e[m shader version 300 => 300 es
+\e[34m|\e[m * \e[33m711ba64\e[m basic drag&drop functional
+\e[34m|\e[m * \e[33m0a1a51a\e[m Active only focusable widget
+\e[34m|\e[m * \e[33m785b108\e[m drag&drop in progress, replace BubblingEvents with focusGiven boolean in currentInterface
+\e[34m|\e[m * \e[33m38f49f7\e[m first try with simple docking view
+\e[34m|\e[m\e[34m/\e[m  
+* \e[33m8faa417\e[m :book:
+* \e[33me316a00\e[m :memo:
+* \e[33mb68c2eb\e[m test appveyor
+* \e[33m71d2eb3\e[m iface param ctor #38
+\e[35m|\e[m * \e[33mc292755\e[m\e[33m (\e[m\e[1;31morigin/InCodeInstatiation\e[m\e[33m, \e[m\e[1;32mInCodeInstatiation\e[m\e[33m)\e[m        - test with both parameterless ctor and with iface param ctor   - CurrentInterface as field
+\e[35m|\e[m\e[35m/\e[m  
+* \e[33me3c509d\e[m :bulb: :lipstick: :bug: template attribute fetch when no default template exist.
+* \e[33mc6a874e\e[m IsDirty bug
+\e[36m|\e[m * \e[33m45a7a8a\e[m\e[33m (\e[m\e[1;31morigin/MonoEmbed\e[m\e[33m)\e[m replace Debug.WriteLine with console
+\e[36m|\e[m * \e[33mab20707\e[m first try to load style from current dir in *.style
+\e[36m|\e[m * \e[33me866cc5\e[m replace debug.write with console.write
+\e[36m|\e[m * \e[33ma313783\e[m mono_cairo_* ICalls for string handling where possible
+\e[36m|\e[m * \e[33m0327fc7\e[m mono embeded crow
+\e[36m|\e[m * \e[33mf74e80c\e[m\e[33m (\e[m\e[1;32mMonoEmbed\e[m\e[33m)\e[m adapt to embed cairo in mono
+\e[36m|\e[m\e[36m/\e[m  
+*   \e[33m56e577d\e[m merge
+\e[1;32m|\e[m\e[1;33m\\e[m  
+\e[1;32m|\e[m * \e[33ma34e76a\e[m border tests
+\e[1;32m|\e[m * \e[33mc131d2a\e[m label: compute correct text cursor when anlign is not left, ColorPicker and num control improvements
+\e[1;32m|\e[m * \e[33m3d35a31\e[m slider debug when minimum is not 0
+\e[1;32m|\e[m * \e[33mc03d824\e[m add string to primType in binding SetValueByReflexion
+\e[1;32m|\e[m * \e[33ma83f4cd\e[m revert 65cf1452510c336fcd69f9922774389d6c3b1aee, to allow widget creation from code
+* \e[1;33m|\e[m   \e[33me0afea2\e[m add error message in showcase
+\e[1;34m|\e[m\e[1;35m\\e[m \e[1;33m\\e[m  
+\e[1;34m|\e[m * \e[1;33m|\e[m \e[33m8220ddc\e[m\e[33m (\e[m\e[1;31morigin/RemovedILayoutable\e[m\e[33m)\e[m        removed interface ILayoutable and derive Interfrace class from GraphicObject which could be split into a simpler layoutable obj and another one
+* \e[1;35m|\e[m \e[1;33m|\e[m \e[33m3cd590b\e[m      change scroller value from double to int, drawings has to be keept aligned on pixel
+* \e[1;35m|\e[m \e[1;33m|\e[m \e[33macc6293\e[m      Use Dictionary to store color names
+* \e[1;35m|\e[m \e[1;33m|\e[m \e[33m025a522\e[m comments and code clean
+\e[1;33m|\e[m \e[1;35m|\e[m\e[1;33m/\e[m  
+\e[1;33m|\e[m\e[1;33m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33mc7a3277\e[m make currentInterface public, other minor changes
+* \e[1;35m|\e[m \e[33m7c43799\e[m full IDisposable implementation (#34)
+\e[1;35m|\e[m \e[1;35m|\e[m * \e[33m8642854\e[m\e[33m (\e[m\e[1;31morigin/IDisposableUnstable\e[m\e[33m, \e[m\e[1;32mIDisposableUnstable\e[m\e[33m)\e[m test parent type when trying to close window
+\e[1;35m|\e[m \e[1;35m|\e[m * \e[33m94708b8\e[m prevent canceling thread multiple times causing a deadlock
+\e[1;35m|\e[m \e[1;35m|\e[m * \e[33md05c6de\e[m override dispose in popper to handle _content not yet in graphic tree (when never shown), test focusedWidget when disposing
+\e[1;35m|\e[m \e[1;35m|\e[m * \e[33m00b96ae\e[m full implementation of IDisposable, not stable, lock and still leaking
+\e[1;35m|\e[m \e[1;35m|\e[m\e[1;35m/\e[m  
+\e[1;35m|\e[m\e[1;35m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m6cbe9f9\e[m first step in implementing a dispose mechanism for graphic objects
+* \e[1;35m|\e[m \e[33m3025ab7\e[m add corner radius to 3d effect on border
+* \e[1;35m|\e[m \e[33m07f2ce0\e[m raise/sunken border
+* \e[1;35m|\e[m \e[33mbf290bb\e[m allow enum value in xml and styling delegates
+* \e[1;35m|\e[m \e[33m65cf145\e[m remove Initialise, currentInterface is set by instanciator
+\e[1;36m|\e[m \e[1;35m|\e[m * \e[33mdde48ba\e[m\e[33m (\e[m\e[1;31morigin/TestXCBandSDL\e[m\e[33m, \e[m\e[1;32mTestXCBandSDL\e[m\e[33m)\e[m test texture surface backend with sdl and xcb
+\e[1;36m|\e[m \e[1;35m|\e[m\e[1;36m/\e[m  
+\e[1;36m|\e[m\e[1;36m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m5f68cf2\e[m cairo.region to handle clipping, native pointer leaking...
+* \e[1;35m|\e[m \e[33m8776ccb\e[m dont back cache in byte array
+* \e[1;35m|\e[m \e[33m23eba30\e[m Update README.md
+* \e[1;35m|\e[m \e[33m9c973b5\e[m Update README.md
+* \e[1;35m|\e[m \e[33m7ab3001\e[m appveyor update
+* \e[1;35m|\e[m \e[33m3dc87bb\e[m debug
+* \e[1;35m|\e[m \e[33m6e0a055\e[m embed Mono.Cairo
+* \e[1;35m|\e[m \e[33m99eed42\e[m debug
+* \e[1;35m|\e[m \e[33m8b10e83\e[m mono.cairo ref instead of cairo-sharp, ScrollingObject
+* \e[1;35m|\e[m \e[33mcbabc42\e[m Revert "replace foreach loops with for ones"
+* \e[1;35m|\e[m \e[33m1c32634\e[m replace foreach loops with for ones
+* \e[1;35m|\e[m \e[33m5fa06df\e[m update perf measures
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m00ec9b2\e[m\e[33m (\e[m\e[1;31morigin/TestC\e[m\e[33m)\e[m work in progress
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m60ab984\e[m workinprogress
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m8ed70c6\e[m use internal calls for libcrow
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m44e2a77\e[m add MDEmbedTest proj
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m84b2304\e[m first render cycle with native c libcrow
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m335cbb6\e[m tests with a c library for speed up
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m4d1f326\e[m\e[33m (\e[m\e[1;31morigin/TestKMS\e[m\e[33m)\e[m c native GraphicObject implementation, work in progress
+\e[31m|\e[m \e[1;35m|\e[m \e[32m|\e[m * \e[33m26cb42f\e[m\e[33m (\e[m\e[1;31morigin/TestDRM\e[m\e[33m)\e[m debug
+\e[31m|\e[m \e[1;35m|\e[m \e[32m|\e[m\e[32m/\e[m  
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m8d385b0\e[m showcase test
+\e[31m|\e[m \e[1;35m|\e[m * \e[33mf41e8d3\e[m cairo.Region to handle clipping
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m958aa6a\e[m reorganize tests and remove duplicates sources
+\e[31m|\e[m \e[1;35m|\e[m * \e[33mdf9a7fe\e[m evdev Device class, test with keymapping
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m0d04969\e[m drm double buffered, but disposing not ok
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m2c34b34\e[m debug
+\e[31m|\e[m \e[1;35m|\e[m \e[33m|\e[m * \e[33m37570a2\e[m\e[33m (\e[m\e[1;31morigin/testDrmDebugTreading\e[m\e[33m)\e[m CrowMonitor tread logger
+\e[31m|\e[m \e[1;35m|\e[m \e[33m|\e[m\e[33m/\e[m  
+\e[31m|\e[m \e[1;35m|\e[m * \e[33me6482e0\e[m TestApp derived from Crow.Application
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m60d85ba\e[m restructured classes for Linux platform
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m5a2b326\e[m work in progress, security commit
+\e[31m|\e[m \e[1;35m|\e[m * \e[33mb89022b\e[m set new mode ok
+\e[31m|\e[m \e[1;35m|\e[m * \e[33m7a41b24\e[m first working Crow interface double buffered on drm
+\e[31m|\e[m \e[1;35m|\e[m * \e[33ma4be468\e[m first tests with KMS, Mono.Cairo is embeded
+\e[31m|\e[m \e[1;35m|\e[m\e[31m/\e[m  
+\e[31m|\e[m\e[31m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33me72eafb\e[m\e[33m (\e[m\e[1;31morigin/OpaqueRQ\e[m\e[33m)\e[m ensure itemTemplate instantiator has a unique id per path+dataType+data
+* \e[1;35m|\e[m \e[33m3437ccf\e[m add CrowIDE in progress to master
+* \e[1;35m|\e[m \e[33m6e0a061\e[m simple treeView presenting example with source of crow files
+* \e[1;35m|\e[m \e[33mdd964b6\e[m update nuget package with latest debug
+\e[34m|\e[m \e[1;35m|\e[m * \e[33m7995e83\e[m\e[33m (\e[m\e[1;31morigin/Themes\e[m\e[33m)\e[m tests with themes, bluez controls
+\e[34m|\e[m \e[1;35m|\e[m\e[34m/\e[m  
+\e[34m|\e[m\e[34m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m34c3219\e[m clear datasource when removing obj from graphic tree
+* \e[1;35m|\e[m \e[33m43c0348\e[m complete set invisible with normal layouting
+* \e[1;35m|\e[m \e[33mfc393c1\e[m check if HoverWidget is removed from graphic tree
+* \e[1;35m|\e[m \e[33m4e24757\e[m update README
+* \e[1;35m|\e[m \e[33me1553b5\e[m Simplify z ordering of root objects in GraphicTree       modifié :         src/GraphicObjects/Group.cs         modifié :         src/GraphicObjects/Window.cs        modifié :         src/Interface.cs
+\e[35m|\e[m \e[1;35m|\e[m * \e[33m45f7415\e[m\e[33m (\e[m\e[1;31morigin/RearangeDirs\e[m\e[33m)\e[m split graphic objects dir
+\e[35m|\e[m \e[1;35m|\e[m\e[35m/\e[m  
+\e[35m|\e[m\e[35m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m20ce118\e[m discard RegisterClip in higher levels if parent is dirty and parent cache is enabled
+\e[36m|\e[m \e[1;35m|\e[m * \e[33m15b061c\e[m\e[33m (\e[m\e[1;31morigin/X11Backend\e[m\e[33m)\e[m first tests
+\e[36m|\e[m \e[1;35m|\e[m\e[36m/\e[m  
+\e[36m|\e[m\e[36m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m1f34a1c\e[m\e[33m (\e[m\e[1;33mtag: v0.5.1\e[m\e[33m)\e[m update nuspec to 0.5.1
+* \e[1;35m|\e[m \e[33m5a9ac88\e[m update license headers to MIT
+* \e[1;35m|\e[m \e[33me7a3be9\e[m debug instantiator: cancel also 2 sided binding if new ds is null
+* \e[1;35m|\e[m \e[33mc1f2905\e[m restore lock in Visible prop of GO
+* \e[1;35m|\e[m \e[33m3f0e2dc\e[m close msgbox on butclick
+* \e[1;35m|\e[m \e[33me077cb1\e[m debug ds prop binding remove handler by name, should be retested exhaustively
+* \e[1;35m|\e[m \e[33m049aeb8\e[m messageBox improvements
+* \e[1;35m|\e[m \e[33m5e84557\e[m name in license
+* \e[1;35m|\e[m \e[33m4601a1d\e[m removed lock in set_Visible
+* \e[1;35m|\e[m \e[33m115cd31\e[m add LICENSE.md
+* \e[1;35m|\e[m \e[33mf174327\e[m move lastPaintedSlot affectation to end of Paint
+* \e[1;35m|\e[m \e[33ma249394\e[m rename out of crow perif event handler funcs
+* \e[1;35m|\e[m \e[33m8452eb0\e[m Several Lock while debuging for magicCrow, Image Opacity, could be put in GraphicObj
+* \e[1;35m|\e[m \e[33m1042bb5\e[m divers debug
+* \e[1;35m|\e[m \e[33m456e7c8\e[m TextBox, Label, simpler SVG icon for file sys viewers (improve speed a lot), divers debug and code clean
+* \e[1;35m|\e[m \e[33m5ca7116\e[m selection foreground for label
+* \e[1;35m|\e[m \e[33me4113eb\e[m divers debug, templated group selection, label double click,...
+* \e[1;35m|\e[m \e[33mf131dc1\e[m give layout mutex priority to properties update and dont block in update loop
+* \e[1;35m|\e[m \e[33m9a194ca\e[m dispose interface controlers
+\e[1;31m|\e[m \e[1;35m|\e[m * \e[33m41f3ac8\e[m\e[33m (\e[m\e[1;31morigin/EmbedCairoSharp\e[m\e[33m)\e[m remove Cairo-sharp ref and add cairo-sharp source
+\e[1;31m|\e[m \e[1;35m|\e[m\e[1;31m/\e[m  
+\e[1;31m|\e[m\e[1;31m/\e[m\e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[33m593be72\e[m popper separate content positionning
+* \e[1;35m|\e[m \e[33mf9407ac\e[m allow commented line in Style '//'
+* \e[1;35m|\e[m \e[33ma1afb52\e[m debug wrapper layouting, finalyse FileDialog wrapper usage
+* \e[1;35m|\e[m \e[33m3925d9b\e[m replace Title in Window class by Caption
+* \e[1;35m|\e[m \e[33m117206c\e[m handle object origType in emitConvert(origType, dstType)
+* \e[1;35m|\e[m \e[33mb90acf9\e[m implement IDisposable for InterfaceControler class
+* \e[1;35m|\e[m \e[33m31783bb\e[m move recurrent 'Caption' property in Templated Control
+* \e[1;35m|\e[m \e[33m0704b17\e[m H S V properties in Color
+* \e[1;35m|\e[m \e[33m7d9f8d5\e[m make publi Initialize func of GraphicObj, test logical parent in popper to allow shared content, test parent == null on visible changed
+* \e[1;35m|\e[m   \e[33ma4e9dc3\e[m Merge improvements and debug from  'CrowIDE' branch
+\e[1;33m|\e[m\e[1;34m\\e[m \e[1;35m\\e[m  
+\e[1;33m|\e[m * \e[1;35m|\e[m \e[33ma2b87ab\e[m\e[33m (\e[m\e[1;31morigin/CrowIDE\e[m\e[33m)\e[m MenuItem Template update, test Project viewer, view commands
+\e[1;33m|\e[m * \e[1;35m|\e[m \e[33me0043f7\e[m crowObjs type search debug, improve type search in ItemTemplate selection
+\e[1;33m|\e[m * \e[1;35m|\e[m \e[33md341658\e[m icon menuitem, PopWidth and PopHeight, commands
+\e[1;33m|\e[m * \e[1;35m|\e[m \e[33m3938a2a\e[m hover debug on Visible state changes => trigger mouseMove
+\e[1;33m|\e[m * \e[1;35m|\e[m \e[33m2ffad67\e[m CrowThread;AlwaysOnTop win;GTree explorer;
+\e[1;33m|\e[m * \e[1;35m|\e[m   \e[33mbfe9d9d\e[m Merge branch 'master' into CrowIDE
+\e[1;33m|\e[m \e[1;35m|\e[m\e[1;33m\\e[m \e[1;35m\\e[m  
+\e[1;33m|\e[m \e[1;35m|\e[m\e[1;33m/\e[m \e[1;35m/\e[m  
+\e[1;33m|\e[m\e[1;33m/\e[m\e[1;35m|\e[m \e[1;35m|\e[m   
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m1a4fe8b\e[m debug
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33ma84e509\e[m debug new dynEvent handler
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33mfb73ce2\e[m new CompileDynEventHandler method with new 'BindingMember' class
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m35a7885\e[m remove GLib refs from rsvg-sharp, keep mostly only func used by crow
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33mbf81020\e[m code clean and comments
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m3491fb0\e[m binding expression allowing named and unamed target, code clean and comments
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m2b9e8c8\e[m code clean and comment
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m33d043a\e[m debug ColorPicker
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m4a7050f\e[m Tag as full crow property + comments
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33mcca59d2\e[m debug remove old binding from ds
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m41f4b5a\e[m move implicit converstion of fill from and to color into Fill class, solid color equality debug
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33m6872058\e[m 'this' keyword in compiled handler
+* \e[1;35m|\e[m \e[1;35m|\e[m \e[33mf512287\e[m move unproject into ProjectiveIFaceCtrl, debug
+\e[1;36m|\e[m * \e[1;35m|\e[m \e[33m5c60b29\e[m dataType for expandable itemTemplate use 'isAssignableFrom'; GraphicTree View
+\e[1;36m|\e[m * \e[1;35m|\e[m \e[33m369a13a\e[m always on top windows
+\e[1;36m|\e[m * \e[1;35m|\e[m \e[33m425ae6f\e[m maximize and minimize for window
+\e[1;36m|\e[m * \e[1;35m|\e[m   \e[33meae3646\e[m Merge branch 'master' into CrowIDE
+\e[1;36m|\e[m \e[31m|\e[m\e[32m\\e[m \e[1;35m\\e[m  
+\e[1;36m|\e[m \e[31m|\e[m * \e[1;35m|\e[m \e[33m40e30c5\e[m debug
+\e[1;36m|\e[m \e[31m|\e[m\e[1;36m/\e[m \e[1;35m/\e[m  
+\e[1;36m|\e[m\e[1;36m/\e[m\e[31m|\e[m \e[1;35m|\e[m   
+* \e[31m|\e[m \e[1;35m|\e[m \e[33me4b3f16\e[m 3d interfaces
+* \e[31m|\e[m \e[1;35m|\e[m \e[33mb741fbb\e[m optimize configuration class
+* \e[31m|\e[m \e[1;35m|\e[m \e[33maa67990\e[m default config embedded in AppName.default.config (resource)
+\e[32m|\e[m * \e[1;35m|\e[m \e[33m1f9b727\e[m add debug msg for DEBUG_LAYOUTING
+\e[32m|\e[m * \e[1;35m|\e[m \e[33md7e9527\e[m ProcessMouseMove method copied, work in progress saved for branch switching
+\e[32m|\e[m * \e[1;35m|\e[m   \e[33mde20347\e[m Merge branch 'master' into CrowIDE
+\e[32m|\e[m \e[33m|\e[m\e[34m\\e[m \e[1;35m\\e[m  
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33mab87f2c\e[m\e[33m (\e[m\e[1;31morigin/3dinterface\e[m\e[33m)\e[m InterfaceControler
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33m7f8361f\e[m derive CrowWindow3D from CrowWindow
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33m19408b0\e[m matrices and unproject ok, code organization required
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33m41664de\e[m hello3d test
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33m51a188c\e[m first test with 3d interface
+\e[32m|\e[m \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m * \e[33m9a61878\e[m code clean
+\e[32m|\e[m \e[33m|\e[m\e[32m_\e[m\e[34m|\e[m\e[32m_\e[m\e[1;35m|\e[m\e[32m/\e[m  
+\e[32m|\e[m\e[32m/\e[m\e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m   
+* \e[33m|\e[m \e[34m|\e[m \e[1;35m|\e[m \e[33mb911830\e[m debug dirtyRect
+\e[34m|\e[m \e[33m|\e[m\e[34m/\e[m \e[1;35m/\e[m  
+\e[34m|\e[m\e[34m/\e[m\e[33m|\e[m \e[1;35m|\e[m   
+\e[34m|\e[m \e[33m|\e[m \e[1;35m|\e[m * \e[33m53916f7\e[m\e[33m (\e[m\e[1;31morigin/PBO\e[m\e[33m)\e[m pboReady
+\e[34m|\e[m \e[33m|\e[m \e[1;35m|\e[m *   \e[33m670a6d2\e[m Merge branch 'master' into PBO
+\e[34m|\e[m \e[33m|\e[m \e[1;35m|\e[m \e[1;31m|\e[m\e[34m\\e[m  
+\e[34m|\e[m \e[33m|\e[m\e[34m_\e[m\e[1;35m|\e[m\e[34m_\e[m\e[1;31m|\e[m\e[34m/\e[m  
+\e[34m|\e[m\e[34m/\e[m\e[33m|\e[m \e[1;35m|\e[m \e[1;31m|\e[m   
+* \e[33m|\e[m \e[1;35m|\e[m \e[1;31m|\e[m \e[33m40b1600\e[m openGL draw measure
+\e[1;35m|\e[m \e[33m|\e[m\e[1;35m/\e[m \e[1;31m/\e[m  
+\e[1;35m|\e[m\e[1;35m/\e[m\e[33m|\e[m \e[1;31m|\e[m   
+\e[1;35m|\e[m \e[33m|\e[m * \e[33mc8c5b72\e[m        save bmpSize and bmpStride
+\e[1;35m|\e[m \e[33m|\e[m * \e[33mc116cd0\e[m        first working try with 2 PBOs, should be improved
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m594d6e1\e[m rearange processDrawing, cancelled ctx creation if clipping.count == 0
+\e[1;35m|\e[m \e[33m|\e[m\e[1;35m/\e[m  
+\e[1;35m|\e[m\e[1;35m/\e[m\e[33m|\e[m   
+* \e[33m|\e[m \e[33me72a570\e[m remove old binding class
+* \e[33m|\e[m \e[33mec0ae95\e[m    debug
+* \e[33m|\e[m \e[33m67465b7\e[m    debug tab view
+* \e[33m|\e[m \e[33m193e218\e[m    menuItem derived from Menu + automatic opening when sibling opens
+* \e[33m|\e[m \e[33m0a309c9\e[m    debug menus
+\e[1;32m|\e[m \e[33m|\e[m * \e[33m84e8aed\e[m\e[33m (\e[m\e[1;31morigin/CairoRegions\e[m\e[33m)\e[m use cairo.Region to store clipping rects
+\e[1;32m|\e[m \e[33m|\e[m\e[1;32m/\e[m  
+\e[1;32m|\e[m\e[1;32m/\e[m\e[33m|\e[m   
+* \e[33m|\e[m \e[33m88e6f84\e[m    new PerformanceMeasure class
+* \e[33m|\e[m \e[33m78a35f8\e[m    * Interface.cs:           maxLayoutTries = 3; max discard = 5, test if dirtyRect.width != 0, lqi logging removed because lqi is now a struct
+* \e[33m|\e[m \e[33m1ba15eb\e[m lock layouting when image loading
+* \e[33m|\e[m \e[33mfd46c9e\e[m update appveyor.yml
+* \e[33m|\e[m \e[33m34535da\e[m debug OpenTK2.0 ref path
+* \e[33m|\e[m \e[33mda219db\e[m lqi as struct instead of class, output in debug layouring tries and discard if > 1
+* \e[33m|\e[m \e[33m3d3e97a\e[m    * Grid.cs, TabView.cs, Wrapper.cs, GenericStack.cs, GraphicObject.cs:     IsDirty instead of deleting bmp, resolve blinking bug
+* \e[33m|\e[m \e[33m96698e1\e[m    * Tests.csproj:           update to opentk-2.0
+* \e[33m|\e[m \e[33m261107d\e[m Spinner styling, ColorPicker SelectedRawColor, config conversion debug, color.resetName
+* \e[33m|\e[m \e[33mca2044c\e[m search for private and public handler methods
+\e[1;33m|\e[m \e[33m|\e[m * \e[33m2e055ec\e[m\e[33m (\e[m\e[1;31morigin/FileDialog\e[m\e[33m)\e[m file dialog tests
+\e[1;33m|\e[m \e[33m|\e[m\e[1;33m/\e[m  
+\e[1;33m|\e[m\e[1;33m/\e[m\e[33m|\e[m   
+* \e[33m|\e[m \e[33m26fc4b0\e[m debug when vc of ds newVal is null
+* \e[33m|\e[m   \e[33m0f1346e\e[m New binding system and new inherited measures
+\e[1;35m|\e[m\e[1;36m\\e[m \e[33m\\e[m  
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m7fa6c6c\e[m\e[33m (\e[m\e[1;31morigin/NewBinding\e[m\e[33m)\e[m code clean and debug
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m6f5e0f0\e[m replace Activator.CreateInstance in Instantiator with an Emited NewOjb
+\e[1;35m|\e[m * \e[33m|\e[m \e[33me0a9da2\e[m caching of recurent reflexion elements
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mfa245bf\e[m        * FileDialog.template:    right pane
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mf98beed\e[m\e[33m (\e[m\e[1;31morigin/BigListHandling\e[m\e[33m)\e[m new binding debug and new inherited sizing method
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m * \e[33mcce5f89\e[m\e[33m (\e[m\e[1;31morigin/NewBindingInIDE\e[m\e[33m)\e[m         getNodeAddressFromBindingExp debug in release without limit checking, should be improved
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m * \e[33m16b7173\e[m    Normal In Tree Handler Method handling
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m * \e[33m19742f5\e[m    * BasicTests.cs, CrowIDE.csproj, 0.crow, DirectoryView.template, testFileDialog.crow:     test
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m * \e[33m9d7b7fb\e[m debug and finalize fusion IDE/NewBinding
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m * \e[33m0626c9b\e[m remove IBindable
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m *   \e[33m6ab563d\e[m Merge branch 'CrowIDE' into NewBindingInIDE
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m \e[1;36m|\e[m\e[33m\\e[m  
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m\e[1;36m/\e[m \e[33m/\e[m  
+\e[1;35m|\e[m \e[1;36m|\e[m\e[1;36m/\e[m\e[33m|\e[m \e[33m/\e[m   
+\e[1;35m|\e[m \e[1;36m|\e[m \e[33m|\e[m\e[33m/\e[m    
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m2b4455e\e[m use LogicalParent in binding, debug Parenting and DS changes in several classes
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m66fb8b5\e[m cancel for now reverse template binding and code clean and formating
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mec4431d\e[m remove oldDataSource second way bindings
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m9ecf0d3\e[m enable two way binding, reverser binding for datasource
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m504c0bc\e[m Compile style dynamic events
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mdecb450\e[m Remove old datasource handler if not null
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m88ddb3a\e[m remove old parent property bindings for templatewq
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m20d9e14\e[m New property binding, init emitted in ctx.     modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m15092ce\e[m allow one level of binding outside IML current fragment or file
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m366e3e0\e[m Add in tree handler at end of parsing just after name resolution Move several static func for emit in CompilerService class    modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IML/BindingDefinition.cs        modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mb21a20c\e[m replace castclass by IsInst when sure it's not null
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m73bea08\e[m Template handler binding, name resolution, IsTemplateBinding property in BindingDefinition class       modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IML/BindingDefinition.cs        modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m971cc1b\e[m box valuetype value fetched for init before passing it to convert
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m973cde8\e[m binding expression corrections         modifié :         Templates/ArrowButTemplate.crow     modifié :         Templates/Button.template   modifié :         Templates/Spinner.template  modifié :         Templates/treeList.crow
+\e[1;35m|\e[m * \e[33m|\e[m \e[33me93697a\e[m Named node resolution, code clean and debug    modifié :         Crow.csproj         modifié :         src/IML/BindingDefinition.cs        modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs         modifié :         src/ItemTemplate.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mc382841\e[m use class BindingDefinition to store source and target data's  modifié :         src/IML/BindingDefinition.cs        modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m37199aa\e[m BindingDefinition class
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m1e0999a\e[m code clean and debug
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m6b47a9b\e[m Context.StorePropertyBinding
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mb961b2e\e[m automatic implicit openrator conversion for class
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m5cf7c26\e[m improve emitCheckAndConvert    modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33md7a7930\e[m emitHandlerBinding for oot template
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m6bdcdb1\e[m prop less bindings in normal GTobj bindings, generic binding expression splitting function (splitBindingExp)
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m0b00506\e[m Code simplification, only 1 cachedDelegates list.      modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m0819cdc\e[m emit bind datasource handler methods   modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IML/Context.cs  modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33maba894f\e[m simplify datasourcechange dynMeth with a helper func in the Instantiator
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m28a9515\e[m property less bindings in template handling
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mbdd6f9a\e[m Template binding instantiation, dynamic event handler emition. intermediate save.      modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IML/Context.cs  modifié :         src/IML/Node.cs     modifié :         src/IML/NodeAddress.cs      modifié :         src/Instantiator.cs
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mc30725e\e[m ParentChanged event in GraphicObject
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mf416267\e[m debug
+\e[1;35m|\e[m * \e[33m|\e[m \e[33mf7512fd\e[m debug current obj stacking in instantiator
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m602da17\e[m graphic tree binding initializer, set actual value of orig to dest at instantiation time
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m19fd079\e[m graphic tree bindings valuechanges implementation
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m4fb8b3a\e[m basic datasource binding functional without inititial set value during dschanged
+\e[1;35m|\e[m * \e[33m|\e[m \e[33madbb4fd\e[m NodeAddress hashcode
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m7308ca2\e[m new instanciator class without IML.Reader, Context class will handle temorary parsing structures
+\e[1;35m|\e[m * \e[33m|\e[m \e[33me93ebc7\e[m IML parser wip
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m4f00292\e[m IML namespace for Reader
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m3b6b63a\e[m        remove old ResolveBinding call, remove IBindable, DataSourceChanged event
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m398b399\e[m work in progress
+\e[1;35m|\e[m * \e[33m|\e[m \e[33m000b46b\e[m move recurent reflexion to static in CompilerServices  modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IMLReader.cs
+\e[1;35m|\e[m \e[33m|\e[m \e[33m|\e[m * \e[33m8ca3ed8\e[m\e[33m (\e[m\e[1;31morigin/NewBindings\e[m\e[33m)\e[m DataSource changed event, work in progress    modifié :         Crow.csproj         modifié :         Tests/BasicTests.cs         nouveau fichier : src/DataSourceEventArgs.cs   modifié :         src/GraphicObjects/Container.cs     modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/Group.cs         modifié :         src/Interface.cs
+\e[1;35m|\e[m \e[33m|\e[m \e[33m|\e[m\e[33m/\e[m  
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m5b9efbd\e[m File dialog derived from Window, not functional        modifié :         Default.style       modifié :         Templates/FileDialog.template       nouveau fichier : Tests/Interfaces/Unsorted/testFileDialog.crow        supprimé :        Tests/Interfaces/Unsorted/testFileDialog.goml       modifié :         Tests/Tests.csproj  modifié :         src/GraphicObjects/FileDialog.cs divers     modifié :         src/GraphicObjects/HueSelector.cs   modifié :         src/LayoutingQueueItem.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33ma5bc69a\e[m debug and test 2 way binding, working ok.
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m0164835\e[m update cursors on layout changes       modifié :         src/GraphicObjects/HueSelector.cs   modifié :         src/GraphicObjects/SaturationValueSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m169f569\e[m debug  modifié :         Templates/ColorPicker.template      modifié :         Tests/Interfaces/Divers/colorPicker.crow    copié :           src/GraphicObjects/ColorSelector.cs -> src/GraphicObjects/ColorPicker.cs    modifié :         src/GraphicObjects/ColorSelector.cs         modifié :         src/GraphicObjects/HueSelector.cs   modifié :         src/GraphicObjects/SaturationValueSelector.cs       modifié :         src/Colors.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m63e6582\e[m first test with color in property tab from CrowIDE     modifié :         CrowIDE/ui/imlEditor.crow   modifié :         Templates/ColorPicker.template      modifié :         Tests/Interfaces/Divers/colorPicker.crow    modifié :         src/GraphicObjects/ColorPicker.cs   modifié :         src/GraphicObjects/ColorSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33md4b3beb\e[m Hex color value        modifié :         Templates/ColorPicker.template      modifié :         src/GraphicObjects/ColorSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m9708d4f\e[m code clean and debug   modifié :         src/GraphicObjects/ColorSelector.cs         modifié :         src/GraphicObjects/SaturationValueSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m100a4ff\e[m HSV to and from RGBA   modifié :         Default.style       modifié :         Templates/ColorPicker.template      modifié :         src/GraphicObjects/ColorSelector.cs         modifié :         src/GraphicObjects/SaturationValueSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m8c71296\e[m Hue selector and Saturation/value selector     modifié :         Crow.csproj         modifié :         Templates/ColorPicker.template      modifié :         src/GraphicObjects/ColorSelector.cs         nouveau fichier : src/GraphicObjects/HueSelector.cs    nouveau fichier : src/GraphicObjects/SaturationValueSelector.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m0cfc0f9\e[m Basic color picker widget      modifié :         Crow.csproj         modifié :         CrowIDE/CrowIDE.csproj      nouveau fichier : CrowIDE/Default.style        modifié :         Default.style       nouveau fichier : Templates/ColorPicker.template       nouveau fichier : Tests/Interfaces/Divers/colorPicker.crow     nouveau fichier : src/GraphicObjects/ColorPicker.cs    nouveau fichier : src/GraphicObjects/ColorSelector.cs  modifié :         Tests/Tests.csproj  modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/SolidColor.cs simplify Alignment        modifié :         src/Enums.cs prevent null background fill   modifié :         src/GraphicObjects/GraphicObject.cs
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m9c20917\e[m Different temp items in Obj property tab depending on property type    modifié :         CrowIDE/CrowIDE.csproj      modifié :         CrowIDE/src/MembersView.cs  modifié :         CrowIDE/ui/imlEditor.crow
+\e[1;35m|\e[m \e[33m|\e[m * \e[33mbf4348e\e[m add DataTest property to TemplatedGroup for testing data members in addition to data type
+\e[1;35m|\e[m \e[33m|\e[m * \e[33md49bc44\e[m dont try to find covertion methode to object in emitted MSIL
+\e[1;35m|\e[m \e[33m|\e[m * \e[33m6006dad\e[m add RegisterLayouting for position when vert or horiz align changed
+\e[1;35m|\e[m \e[33m|\e[m *   \e[33mad18d88\e[m Merge branch 'master' into CrowIDE
+\e[1;35m|\e[m \e[33m|\e[m \e[35m|\e[m\e[1;35m\\e[m  
+\e[1;35m|\e[m \e[33m|\e[m\e[1;35m_\e[m\e[35m|\e[m\e[1;35m/\e[m  
+\e[1;35m|\e[m\e[1;35m/\e[m\e[33m|\e[m \e[35m|\e[m   
+* \e[33m|\e[m \e[35m|\e[m \e[33m7c00385\e[m Assebly signature        modifié :         Crow.csproj         modifié :         Crow.sln    modifié :         Properties/AssemblyInfo.cs  nouveau fichier : crow.key     modifié :         src/Colors.cs       modifié :         src/GraphicObjects/Popper.cs
+* \e[33m|\e[m \e[35m|\e[m \e[33mfaad767\e[m\e[33m (\e[m\e[1;33mtag: v0.5\e[m\e[33m)\e[m Inherited dims (#31)
+\e[33m|\e[m\e[33m/\e[m \e[35m/\e[m  
+\e[33m|\e[m * \e[33mecc2ebe\e[m test already registeredLayouting at the beginning of RegisterForLayouting
+\e[33m|\e[m * \e[33md78c818\e[m simplified SizePolicy check        modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/Measure.cs
+\e[33m|\e[m * \e[33macf5f60\e[m + visibility does not work, removed
+\e[33m|\e[m * \e[33me3e522d\e[m    rebase master
+\e[33m|\e[m * \e[33md739f2d\e[m rename Root to CurrentDirectory, et CurrentDirectory to FileSystemEntries  modifié :         CrowIDE/ui/imlEditor.crow   modifié :         Templates/DirectoryView.template    modifié :         Tests/Interfaces/Divers/0.crow      modifié :         src/GraphicObjects/DirectoryView.cs thiner menu     modifié :         Templates/Menu.template     modifié :         Templates/MenuItem.template
+\e[33m|\e[m * \e[33m4fd5c81\e[m adapt when DEBUG_LAYOUTING not set
+\e[33m|\e[m * \e[33md84f96e\e[m Move Debug LQIs lists to CurrentInterface LQIs visualizer ItemTemplate expandable may use 'self' keywork   modifié :         CrowIDE/CrowIDE.csproj      modifié :         CrowIDE/src/CrowIDE.cs      nouveau fichier : CrowIDE/src/Extensions.cs    modifié :         CrowIDE/src/ImlVisualEditor.cs      nouveau fichier : CrowIDE/ui/LQIsExplorer.crow         nouveau fichier : CrowIDE/ui/bindingExpITemp.crow      nouveau fichier : CrowIDE/ui/bindingExplorer.crow      modifié :         Templates/DirectoryView.template    modifié :         Templates/Window.template   modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/Wrapper.cs       modifié :         src/Interface.cs    modifié :         src/ItemTemplate.cs         modifié :         src/LayoutingQueueItem.cs
+\e[33m|\e[m * \e[33m94dad03\e[m search extension methods for expand delegate move recurent MemberInfo to global static.    modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/IMLReader.cs    modifié :         src/ItemTemplate.cs
+\e[33m|\e[m * \e[33mf342ff6\e[m adapt child layout register on group size change depending on units of child measure, change visible state change logic in go
+\e[33m|\e[m * \e[33me01022e\e[m    * CrowIDE.csproj, imlEditor.crow, MembersView.cs, ImlVisualEditor.cs, MembersView.template:       MembersView
+\e[33m|\e[m * \e[33m67e61bd\e[m    arrows
+\e[33m|\e[m * \e[33maf0b84f\e[m    prevent expand delegate in Trees to refetch datas if data is already set
+\e[33m|\e[m * \e[33m881b57d\e[m    iml source handling, mouse hover in imlVE
+\e[33m|\e[m * \e[33mce9cf26\e[m    * Crow.sln, test.crow, CrowIDE.csproj, CrowIDE.cs, imlEditor.crow, TreeView.cs, DirectoryView.cs:         basic IML loading into imlVE interface
+\e[33m|\e[m * \e[33md735142\e[m CrowIDE project creation
+\e[33m|\e[m \e[36m|\e[m * \e[33m3f7fcdd\e[m\e[33m (\e[m\e[1;31morigin/InheritedDims\e[m\e[33m)\e[m update nuspec
+\e[33m|\e[m \e[36m|\e[m * \e[33m1e3451d\e[m leave template bindings for sizing in ScrollBar template because Inherited values are not working.       modifié :         Templates/ScrollBar.template        renommé :         Tests/Interfaces/TemplatedControl/testScrollbar.goml -> Tests/Interfaces/TemplatedControl/testScrollbar.crow        renommé :         Tests/Interfaces/TemplatedControl/testSpinner.goml -> Tests/Interfaces/TemplatedControl/testSpinner.crow    modifié :         Tests/Tests.csproj
+\e[33m|\e[m \e[36m|\e[m * \e[33me6a65b9\e[m Implement 'Inherit' measure to reduce bindings load.
+\e[33m|\e[m \e[36m|\e[m\e[33m/\e[m  
+\e[33m|\e[m\e[33m/\e[m\e[36m|\e[m   
+* \e[36m|\e[m \e[33m2616e6e\e[m Merge improvements from CrowIDE    modifié :         Templates/DirectoryView.template    modifié :         Templates/Menu.template     modifié :         Templates/MenuItem.template         modifié :         Templates/Window.template   modifié :         Tests/Interfaces/Divers/0.crow      modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/ExtensionsMethods.cs    modifié :         src/GraphicObjects/DirectoryView.cs         modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/Group.cs         modifié :         src/GraphicObjects/TreeView.cs      modifié :         src/GraphicObjects/Wrapper.cs       modifié :         src/IMLReader.cs    modifié :         src/Interface.cs    modifié :         src/ItemTemplate.cs         modifié :         src/LayoutingQueueItem.cs   modifié :         src/Measure.cs      modifié :         src/Point.cs
+* \e[36m|\e[m \e[33mb7786bb\e[m appveyor test
+* \e[36m|\e[m \e[33mfb06bfa\e[m appveyor test
+* \e[36m|\e[m \e[33m80477e8\e[m Move recurent Reflexion items to static in CompilerServices        modifié :         src/CompilerServices/CompilerServices.cs
+* \e[36m|\e[m   \e[33m348f7e0\e[m Merge pull request #30 from jpbruyere/TreeViewItemAsTemplatedGroup
+\e[1;32m|\e[m\e[1;33m\\e[m \e[36m\\e[m  
+\e[1;32m|\e[m * \e[36m|\e[m \e[33m801c274\e[m\e[33m (\e[m\e[1;31morigin/TreeViewItemAsTemplatedGroup\e[m\e[33m)\e[m remove selected item handling (moved into TemplatedGroup)      modifié :         src/GraphicObjects/TreeView.cs renames      modifié :         src/ItemTemplate.cs
+\e[1;32m|\e[m * \e[36m|\e[m \e[33m4a9a785\e[m Derive ListBox from TemplatedGroup Move Data List handling and selection in TemplatedGroup     modifié :         Templates/ComboBox.template         modifié :         Templates/ListBox.template  modifié :         Templates/ScrollingListBox.goml     modifié :         Templates/TreeView.template         modifié :         Templates/treeList.crow     modifié :         Tests/BasicTests.cs         modifié :         Tests/Interfaces/TemplatedContainer/testTreeView.crow       modifié :         Tests/Interfaces/TemplatedControl/testItemTemplateTag.crow  modifié :         src/GraphicObjects/ListBox.cs       modifié :         src/GraphicObjects/MenuItem.cs      modifié :         src/GraphicObjects/TemplatedControl.cs      modifié :         src/GraphicObjects/TemplatedGroup.cs        modifié :         src/GraphicObjects/TreeView.cs      modifié :         src/IMLReader.cs    modifié :         src/ItemTemplate.cs
+\e[1;32m|\e[m\e[1;32m/\e[m \e[36m/\e[m  
+* \e[36m|\e[m \e[33m6c2ecec\e[m update appveyor
+\e[36m|\e[m\e[36m/\e[m  
+*   \e[33m4b97ce3\e[m Merge pull request #29 from jpbruyere/TemplatedGroup
+\e[1;34m|\e[m\e[1;35m\\e[m  
+\e[1;34m|\e[m * \e[33m1a08acb\e[m update tests
+\e[1;34m|\e[m * \e[33mceb0842\e[m debug splitter for stretched item (min max size check)
+\e[1;34m|\e[m * \e[33mcc70493\e[m  proportional size spliter.
+\e[1;34m|\e[m * \e[33m8d1e0c9\e[m  debug mouse leave, move recursive test back into interface instead of go.MouseLeave     Menu IsOpen handling    MenuItem Open and Close events
+\e[1;34m|\e[m * \e[33me68f66a\e[m  debug mouse focus
+\e[1;34m|\e[m * \e[33m8e0a800\e[m rename propless bind Orientation=>PopDirection in menu, update examples
+\e[1;34m|\e[m * \e[33me270b18\e[m set sender of mouse leave to widget loosing mouse
+\e[1;34m|\e[m * \e[33mac42593\e[m some TODO:
+\e[1;34m|\e[m * \e[33m2f6ce15\e[m MenuItem execute
+\e[1;34m|\e[m * \e[33ma1e2e7d\e[m Command class creation
+\e[1;34m|\e[m * \e[33m417c710\e[m Can't pop is no submenu on node  modifié :         Templates/MenuItem.template         modifié :         src/GraphicObjects/MenuItem.cs   add CanPop property        modifié :         src/GraphicObjects/Popper.cs   add 'HasChildren' propertyless binding       modifié :         src/GraphicObjects/TemplatedGroup.cs
+\e[1;34m|\e[m * \e[33mbefffb6\e[m Menu and MenuItem classes, templates, styles and tests   modifié :         Crow.csproj         modifié :         Default.style       modifié :         Style.cs    nouveau fichier : Templates/Menu.template      nouveau fichier : Templates/MenuItem.template  modifié :         Tests/Interfaces/TemplatedGroup/0.crow      nouveau fichier : Tests/Interfaces/TemplatedGroup/1.crow       nouveau fichier : Tests/Interfaces/TemplatedGroup/2.crow       modifié :         Tests/Tests.csproj  nouveau fichier : src/GraphicObjects/Menu.cs   nouveau fichier : src/GraphicObjects/MenuItem.cs       modifié :         src/GraphicObjects/TemplatedGroup.cs
+\e[1;34m|\e[m * \e[33m9c3fd3b\e[m resolve bug popper content childs not arranged if top container is Stack
+\e[1;34m|\e[m * \e[33m5fc76c5\e[m tests reorganization     modifié :         Crow.csproj         modifié :         Tests/BasicTests.cs         renommé :         Tests/Interfaces/Expandable/0.crow -> Tests/Interfaces/TemplatedContainer/0.crow    renommé :         Tests/Interfaces/Expandable/6.crow -> Tests/Interfaces/TemplatedContainer/6.crow    renommé :         Tests/Interfaces/Expandable/7.crow -> Tests/Interfaces/TemplatedContainer/7.crow    renommé :         Tests/Interfaces/Divers/testDirViewer2.crow -> Tests/Interfaces/TemplatedContainer/testDirViewer2.crow      renommé :         Tests/Interfaces/Divers/testGroupBox.crow -> Tests/Interfaces/TemplatedContainer/testGroupBox.crow  renommé :         Tests/Interfaces/Divers/testMsgBox.crow -> Tests/Interfaces/TemplatedContainer/testMsgBox.crow      renommé :         Tests/Interfaces/Divers/testPopper.crow -> Tests/Interfaces/TemplatedContainer/testPopper.crow      renommé :         Tests/Interfaces/Divers/testTabView.crow -> Tests/Interfaces/TemplatedContainer/testTabView.crow    renommé :         Tests/Interfaces/Divers/testTreeView.crow -> Tests/Interfaces/TemplatedContainer/testTreeView.crow  renommé :         Tests/Interfaces/Divers/testWindow.goml -> Tests/Interfaces/TemplatedContainer/testWindow.goml      renommé :         Tests/Interfaces/Divers/testWindow2.goml -> Tests/Interfaces/TemplatedContainer/testWindow2.goml    renommé :         Tests/Interfaces/Divers/testWindow3.goml -> Tests/Interfaces/TemplatedContainer/testWindow3.goml    renommé :         Tests/Interfaces/Divers/test_Listbox.crow -> Tests/Interfaces/TemplatedContainer/test_Listbox.crow  renommé :         Tests/Interfaces/Divers/testButton.crow -> Tests/Interfaces/TemplatedControl/testButton.crow        renommé :         Tests/Interfaces/Divers/testCheckbox.crow -> Tests/Interfaces/TemplatedControl/testCheckbox.crow    renommé :         Tests/Interfaces/Divers/testCombobox.crow -> Tests/Interfaces/TemplatedControl/testCombobox.crow    renommé :         Tests/Interfaces/Divers/testItemTemplateTag.crow -> Tests/Interfaces/TemplatedControl/testItemTemplateTag.crow      renommé :         Tests/Interfaces/Divers/testRadioButton.crow -> Tests/Interfaces/TemplatedControl/testRadioButton.crow      renommé :         Tests/Interfaces/Divers/testScrollbar.goml -> Tests/Interfaces/TemplatedControl/testScrollbar.goml  renommé :         Tests/Interfaces/Divers/testSpinner.goml -> Tests/Interfaces/TemplatedControl/testSpinner.goml      modifié :         Tests/Tests.csproj  modifié :         src/GraphicObjects/Expandable.cs    modifié :         src/GraphicObjects/Group.cs
+\e[1;34m|\e[m\e[1;34m/\e[m  
+* \e[33md4bc4a1\e[m\e[33m (\e[m\e[1;33mtag: v0.4\e[m\e[33m)\e[m update Crow.dll.config
+* \e[33m5922acf\e[m move Style.cs in src/
+* \e[33m60c9f5b\e[m update tests, test disable control   modifié :         Tests/Interfaces/Divers/0.crow      copié :           Tests/Interfaces/Divers/4.crow -> Tests/Interfaces/Divers/3.crow    modifié :         Tests/Interfaces/Divers/4.crow      nouveau fichier : Tests/Interfaces/Divers/testDisable.crow     modifié :         Tests/Tests.csproj  modifié :         Tests/test.style code clean and comments    modifié :         Tests/OpenTKGameWindow.cs   modifié :         src/GraphicObjects/TemplatedControl.cs
+* \e[33m86c4221\e[m      isDisabled handling
+* \e[33m001c18b\e[m update readme
+* \e[33m71349cb\e[m clean test files
+* \e[33m8c7cd40\e[m Correct bug 'Instanciing from code instead of IML' set currentInterface to default one if null       modifié :         Crow.OpenTK.nuspec  modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/GraphicObjects/Container.cs     modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/PrivateContainer.cs      modifié :         src/GraphicObjects/TemplatedControl.cs      modifié :         src/Interface.cs
+*   \e[33mea5ba40\e[m Merge pull request #19 from jpbruyere/TemplatesPathes
+\e[1;36m|\e[m\e[31m\\e[m  
+\e[1;36m|\e[m * \e[33m6c5120d\e[m CurrentInterface in GraphicObject base
+\e[1;36m|\e[m * \e[33m721fa8d\e[m  adjusting stroke position to have sharper lines, ClipToClientRect property
+\e[1;36m|\e[m * \e[33m9d0137b\e[m  * Crow.csproj, XCursor.cs, Interface.cs, ibeam:           text xcursor
+\e[1;36m|\e[m * \e[33m854f2f7\e[m  * 0.crow, 1.crow, 2.crow, 5.crow, 7.crow:         tests
+\e[1;36m|\e[m * \e[33m4f1128a\e[m  modularize
+\e[1;36m|\e[m * \e[33m7cbef57\e[m double click
+\e[1;36m|\e[m * \e[33m1af00c6\e[m  wrapper debug and test
+\e[1;36m|\e[m * \e[33m8079451\e[m  allow wrapper to fit in the opposite direction of the orientation
+\e[1;36m|\e[m * \e[33m34a5dc3\e[m  wrapper widget
+\e[1;36m|\e[m * \e[33m86acbb4\e[m default template searched in embedded resources with .template extension
+\e[1;36m|\e[m\e[1;36m/\e[m  
+* \e[33med815a3\e[m      * Default.style, Instantiator.cs, MessageBox.goml, ScrollBar.cs, GenericStack.cs, GraphicObject.cs:       debug, codeclean, slot height and width test in Paint to prevent surface creation hang
+* \e[33m80ceca9\e[m      * Crow.csproj, Default.style, button.svg, buttest.svg, buttest2.svg, buttest4.svg, 0.crow:        test and divers
+* \e[33m2b62c4b\e[m      modifié :         README.md
+*   \e[33m81eb8c7\e[m Merge pull request #18 from jpbruyere/BindingImprovement
+\e[32m|\e[m\e[33m\\e[m  
+\e[32m|\e[m * \e[33m7560c0b\e[m\e[33m (\e[m\e[1;31morigin/BindingImprovement\e[m\e[33m)\e[m resolved bug multiple template level read, ensure reader stay on sybling nodes       modifié :         src/IMLReader.cs create instance from XmlFragment   modifié :         src/Instantiator.cs update tests    modifié :         Tests/BasicTests.cs         modifié :         Tests/Interfaces/Divers/imlEditor.crow
+\e[32m|\e[m * \e[33m13b1a97\e[m    TreeView expand delegate creation in IMLReader
+\e[32m|\e[m * \e[33m83d939a\e[m    * IMLReader.cs, MessageBox.goml:          debug
+\e[32m|\e[m *   \e[33m1b2e279\e[m  ItemTemplate instantiator, basic listbox ok
+\e[32m|\e[m \e[34m|\e[m\e[35m\\e[m  
+\e[32m|\e[m \e[34m|\e[m * \e[33m69c4702\e[m ItemTemplate test, major changes in Instantiator implementation bugs     modifié :         Crow.csproj         modifié :         Default.style       modifié :         Tests/BasicTests.cs         modifié :         Tests/Interfaces/Divers/welcome.crow        modifié :         Tests/Interfaces/basicTests/0.crow  modifié :         Tests/Interfaces/basicTests/4.crow  modifié :         src/GraphicObjects/ListBox.cs       modifié :         src/GraphicObjects/ProgressBar.cs   modifié :         src/GraphicObjects/TemplatedControl.cs      modifié :         src/IMLReader.cs    modifié :         src/Instantiator.cs         modifié :         src/Interface.cs    renommé :         src/IMLStream.cs -> src/ItemTemplate.cs
+\e[32m|\e[m \e[34m|\e[m * \e[33m799fec8\e[m move MSIL generator from IML into IMLReader.     modifié :         src/CompilerServices/CompilerServices.cs    rename :         src/IMLInstantiatorBuilder.cs =>  src/IMLReader.cs    modifié :         src/Interface.cs
+\e[32m|\e[m * \e[35m|\e[m \e[33m5a03df5\e[m move MSIL generator from IML into IMLReader.     modifié :         src/CompilerServices/CompilerServices.cs    rename :         src/IMLInstantiatorBuilder.cs =>  src/IMLReader.cs    modifié :         src/Interface.cs    modifié :         Crow.csproj
+\e[32m|\e[m \e[35m|\e[m\e[35m/\e[m  
+\e[32m|\e[m * \e[33m19b2404\e[m Instatiator: use loadTemplate instead of SetChild for adding child in TemplatedControl     modifié :         src/CompilerServices/CompilerServices.cs
+\e[32m|\e[m * \e[33m09069c1\e[m binding emiting in Instanciator    modifié :         src/CompilerServices/CompilerServices.cs remove CurrentInterface property for now from GraphicObject, some parentings are failing   modifié :         src/GraphicObjects/GraphicObject.cs
+\e[32m|\e[m *   \e[33m04c3deb\e[m  instanciator
+\e[32m|\e[m \e[32m|\e[m\e[1;31m\\e[m  
+\e[32m|\e[m\e[32m/\e[m \e[1;31m/\e[m  
+\e[32m|\e[m * \e[33m91a40c7\e[m revert test        modifié :         Templates/CheckBox.goml simply cancel binding for now       modifié :         src/CompilerServices/CompilerServices.cs
+\e[32m|\e[m * \e[33mcc4c62a\e[m IMLInstantiator implementation
+\e[32m|\e[m\e[32m/\e[m  
+* \e[33m4d4a911\e[m      divers
+* \e[33m3ba387d\e[m      add missing files in previous commit
+* \e[33md45cf90\e[m      * Label.cs:       no cursor drawn if not selectable
+* \e[33mffed25a\e[m better git validation layout
+* \e[33mc45ce80\e[m * Crow.csproj: * Label.cs: update
+* \e[33mf42cabd\e[m debug and update nuspec
+*   \e[33mbeba812\e[m Merge pull request #15 from jpbruyere/TemplateImprovments
+\e[1;32m|\e[m\e[1;33m\\e[m  
+\e[1;32m|\e[m * \e[33mb9e90a3\e[m TreeView template access with './', update all templates binding path begining with '/' starts at current level
+\e[1;32m|\e[m * \e[33me9963ab\e[m * ListBox.cs: * TemplatedControl.cs: set ItemTemplate as public
+\e[1;32m|\e[m * \e[33m47dad62\e[m First MSIL expand in TreeView with ItemTemplate, need to share ItemTemplates.
+\e[1;32m|\e[m * \e[33m4ca12da\e[m ItemTemplate class derived from IMLStream. replace xmlLoadingCount by xmlLoading.        modifié :         src/GraphicObjects/ListBox.cs       modifié :         src/GraphicObjects/TemplatedControl.cs      modifié :         src/IMLStream.cs    modifié :         src/Interface.cs
+\e[1;32m|\e[m * \e[33m351960c\e[m DEBUG_LAYOUTING:save every LQI in GraphicObjects for further analysis    modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/LayoutingQueueItem.cs
+\e[1;32m|\e[m * \e[33m981c6d0\e[m Update README.md
+\e[1;32m|\e[m * \e[33m808e85b\e[m update readme
+\e[1;32m|\e[m * \e[33m5fd89ce\e[m try travis trusty, for easy cil lib binding
+\e[1;32m|\e[m * \e[33mc91808e\e[m update travis config
+\e[1;32m|\e[m * \e[33mb58c6b3\e[m Layouting DiscardQueue with MaxDiscardCount      modifié :         src/Interface.cs    modifié :         src/LayoutingQueueItem.cs
+\e[1;32m|\e[m * \e[33me2d351c\e[m Set regLayout.ALL to new object to prevent queuing in layout or drawing, set to regLayout.None just before adding parent LayoutingTries moved into LQI
+\e[1;32m|\e[m * \e[33m3a01c45\e[m * Tests.csproj: * BasicTests.cs: * TreeView.crow: * welcome.crow: * test4.crow: * testWindow2.goml: * testTreeView.crow: * testDirViewer.crow: update tests
+\e[1;32m|\e[m * \e[33mb24819f\e[m ItemTemplate xml element implementation  nouveau fichier : Tests/Interfaces/Unsorted/testItemTemplateTag.crow   modifié :         Tests/Tests.csproj  modifié :         src/GraphicObjects/ListBox.cs       modifié :         src/GraphicObjects/TemplatedControl.cs      modifié :         src/IMLStream.cs
+\e[1;32m|\e[m * \e[33m5e7f9ad\e[m IMLStream
+\e[1;32m|\e[m * \e[33m67e7fb1\e[m debug.print only when debugging binding
+\e[1;32m|\e[m * \e[33m28fcfe4\e[m remove GtkSharp dep that comes with mono, add .config to point to correct lib files depending on os      modifié :         Crow.OpenTK.nuspec  modifié :         Crow.csproj         nouveau fichier : Crow.dll.config      modifié :         Tests/Tests.csproj
+\e[1;32m|\e[m * \e[33mad004bc\e[m update tests
+\e[1;32m|\e[m * \e[33mc601f87\e[m remove image property, set img as fixed in template      modifié :         Templates/CheckBox.goml     modifié :         Templates/RadioButton.goml  modifié :         src/GraphicObjects/CheckBox.cs debug        modifié :         Templates/MessageBox.goml Deep clone        modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/Group.cs Deep clone and code clean       modifié :         src/GraphicObjects/PrivateContainer.cs      modifié :         src/GraphicObjects/RadioButton.cs
+\e[1;32m|\e[m * \e[33m51e7ed1\e[m debug sync threading
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m3e37c87\e[m\e[33m (\e[m\e[1;31morigin/gh-pages\e[m\e[33m)\e[m remove building info
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m326cb1f\e[m update screenshot
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33md2205cf\e[m update screeshot
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33mc62ab99\e[m add paypal
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33mc1222a7\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33me7f75d8\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m9f94d02\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m7a68311\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33mcb0c05d\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m46a68a4\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m3dce291\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33ma1e9bbc\e[m chess screenshot
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33md356ea9\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33mb0866e0\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m4c95b20\e[m update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m97e6ff7\e[m Update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m84a5393\e[m Add files via upload
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33macbb4b0\e[m Update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m61512e7\e[m Update index.html
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m8ec0b07\e[m Add files via upload
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33m5cacebf\e[m Create gh-pages branch via GitHub
+\e[1;32m|\e[m \e[1;33m|\e[m * \e[33ma5e7545\e[m\e[33m (\e[m\e[1;31morigin/deepCloneListItem\e[m\e[33m)\e[m make deep clone for items in list
+\e[1;32m|\e[m \e[1;33m|\e[m\e[1;33m/\e[m  
+\e[1;32m|\e[m * \e[33mb045239\e[m treaded listbox
+\e[1;32m|\e[m * \e[33m64ae55a\e[m no constraint for child positionning in container, because if Fit but size = minSize, child has to be positionned.
+\e[1;32m|\e[m\e[1;32m/\e[m  
+* \e[33mda0cd66\e[m debug combo:  ';' instead of ','
+* \e[33m7da9c43\e[m test stacking orientation for contentSize of stack adjustments
+*   \e[33m7aa1b26\e[m Merge pull request #13 from jpbruyere/UpdateQueuingReview
+\e[1;36m|\e[m\e[31m\\e[m  
+\e[1;36m|\e[m \e[31m|\e[m * \e[33mea026dc\e[m\e[33m (\e[m\e[1;31morigin/UpdateQueuingReview\e[m\e[33m)\e[m test stacking orientation for contentSize of stack adjustments
+\e[1;36m|\e[m \e[31m|\e[m * \e[33m83e119d\e[m debug ; in maxpopup size of Combo
+\e[1;36m|\e[m \e[31m|\e[m\e[31m/\e[m  
+\e[1;36m|\e[m * \e[33m77f7028\e[m Debug contentSize for Stack when stack sizing policy changed.    modifié :         src/GraphicObjects/GraphicObject.cs queue drawing without layouting when not required       modifié :         src/GraphicObjects/Label.cs
+\e[1;36m|\e[m * \e[33m64cd250\e[m Show xml file path for exceptions during loading.        modifié :         src/Interface.cs
+\e[1;36m|\e[m * \e[33mda1e73a\e[m Qyery position layouting in all not stretched conditions
+\e[1;36m|\e[m * \e[33m4662577\e[m Dont use Fit property, it override Width and Height styling for more specific styleKey.  modifié :         Default.style
+\e[1;36m|\e[m * \e[33mdb2c28d\e[m use RegisterForRedraw when applicable
+\e[1;36m|\e[m * \e[33mab038cf\e[m just query repaint for visible state
+\e[1;36m|\e[m * \e[33m7d84ba2\e[m Improve update queuing   modifié :         src/GraphicObjects/GenericStack.cs  modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/GraphicObjects/Group.cs         modifié :         src/GraphicObjects/Label.cs         modifié :         src/GraphicObjects/ListBox.cs       modifié :         src/GraphicObjects/TabView.cs       modifié :         src/Interface.cs    modifié :         src/StyleReader.cs
+\e[1;36m|\e[m\e[1;36m/\e[m  
+* \e[33mfd5b776\e[m add fixed width and height to default win style.     modifié :         Default.style
+* \e[33me7e29bd\e[m style key
+*   \e[33m9a8f162\e[m Merge branch 'StylingImprovments'
+\e[33m|\e[m\e[34m\\e[m  
+\e[33m|\e[m * \e[33m58ca25a\e[m update basic tests
+\e[33m|\e[m * \e[33ma508dab\e[m Style attribute in xml, add default value loader style key.        modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/Interface.cs
+\e[33m|\e[m * \e[33m9804d49\e[m create Default.style, remove Styles directory
+\e[33m|\e[m * \e[33mdfe1b84\e[m change style values from string to object to be able to store dynMehods    modifié :         src/CompilerServices/CompilerServices.cs    modifié :         src/GraphicObjects/GraphicObject.cs         modifié :         src/Interface.cs    modifié :         src/StyleReader.cs
+\e[33m|\e[m * \e[33m4e84cb7\e[m removed old applyStyle     modifié :         src/GraphicObjects/GraphicObject.cs
+\e[33m|\e[m * \e[33md690d2f\e[m cumulative styling
+\e[33m|\e[m * \e[33mbe8a4c2\e[m basic styling ok, need handler and expression now.
+\e[33m|\e[m * \e[33m6c6fb76\e[m replace ';' separator between members by ',' and set '.' as decimal mark in files
+\e[33m|\e[m * \e[33mdca4d91\e[m remove style attributes, add ';' to style files line ending, new style parser
+\e[33m|\e[m * \e[33me4e8fa3\e[m remove os test for config path building, resolve windows bug
+* \e[34m|\e[m \e[33m5236bd6\e[m add custom execute command, because  and  are not resolved in default execute process
+* \e[34m|\e[m   \e[33m9548510\e[m Merge pull request #11 from jpbruyere/appveyor
+\e[35m|\e[m\e[36m\\e[m \e[34m\\e[m  
+\e[35m|\e[m * \e[34m|\e[m \e[33m73f72e1\e[m appveyor tests
+\e[35m|\e[m * \e[34m|\e[m \e[33mfd57196\e[m appveyor tests
+\e[35m|\e[m * \e[34m|\e[m \e[33m20a592a\e[m appveyor tests
+\e[35m|\e[m * \e[34m|\e[m \e[33m7ea64db\e[m appveyor tests
+\e[35m|\e[m * \e[34m|\e[m \e[33m3a4c678\e[m appveyor tests
+\e[35m|\e[m * \e[34m|\e[m \e[33m03cbc19\e[m list dir struct
+* \e[36m|\e[m \e[34m|\e[m   \e[33mc62546b\e[m Merge pull request #9 from jpbruyere/appveyor
+\e[1;31m|\e[m\e[36m\\e[m \e[36m\\e[m \e[34m\\e[m  
+\e[1;31m|\e[m \e[36m|\e[m\e[36m/\e[m \e[34m/\e[m  
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mcf1d656\e[m use GtkSharp 3.1
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m5a8e6e1\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mf0149a2\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m72efafb\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m4e2eb66\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m24940a9\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m0fdc707\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mf81e37e\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m0b8f2e5\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m6a20f96\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mc8b6ae2\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mc95eda5\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m2bfd434\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m2d4c607\e[m appveyor test, removed c#6 feature
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m98832e8\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m9f11cab\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m4096fd5\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m7ac0368\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m90eb2dd\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m9104758\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m7c3ed89\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m29fec1c\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33me5f21ad\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m1dc3747\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m3250245\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m302482d\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m4e1a120\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m4d437df\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mf46c52c\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m389c727\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mf53058a\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m6b1457d\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33ma10888d\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m6c70795\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m690ef39\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m695aa05\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mfc72782\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m76e801f\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mec3382c\e[m appveyor test
+\e[1;31m|\e[m * \e[34m|\e[m \e[33ma273dcc\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m9b20551\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m4febe6f\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mbf74130\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mb009c99\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m2b52dd2\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m3114f9a\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mffb197b\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mb5c354a\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m0fb16a3\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33m9c7f1c0\e[m test appveyor with Mono targetFramework in csproj
+\e[1;31m|\e[m * \e[34m|\e[m \e[33mb691aed\e[m test appveyor with Mono targetFramework in csproj
+* \e[1;32m|\e[m \e[34m|\e[m \e[33m55824e2\e[m remove test tm dir
+\e[1;32m|\e[m\e[1;32m/\e[m \e[34m/\e[m  
+* \e[34m|\e[m \e[33m555b417\e[m test mono appveyor
+* \e[34m|\e[m \e[33mbf43d3d\e[m Update README.md
+* \e[34m|\e[m \e[33mc00dfcb\e[m Update README.md
+* \e[34m|\e[m \e[33me57d095\e[m update appveyor config
+* \e[34m|\e[m \e[33me1179a7\e[m update appveyor config
+* \e[34m|\e[m \e[33m3ba4aeb\e[m update appveyor config
+* \e[34m|\e[m \e[33m6adf968\e[m update appveyor config
+* \e[34m|\e[m \e[33m695824d\e[m add appveyor config
+* \e[34m|\e[m \e[33m8b2d77f\e[m Update README.md
+* \e[34m|\e[m \e[33m572eb59\e[m Removed Utf16->Utf8 conversion on Win os, so Mono framework, which use Utf8 for string encoding on every os becomes mandatory.     modified:   src/GraphicObjects/Label.cs         modified:   src/GraphicObjects/TextRun.cs
+\e[34m|\e[m\e[34m/\e[m  
+* \e[33m216fa16\e[m implement Crow.LoadFromStream and filenotfound catch         modifié :         Tests/OpenGL/Texture.cs
+* \e[33m7164e3f\e[m tutorial examples
+* \e[33m9020578\e[m Update README.md
+* \e[33m26034bf\e[m update readme
+* \e[33mc74c7f8\e[m override last shadowed commit
+* \e[33m38dc6c0\e[m Update README.md
+* \e[33mcf21235\e[m improve splitter mouse move
+* \e[33m61f1561\e[m debug mouse hangling and focus
+* \e[33md98ba07\e[m update nuspec
+* \e[33m9023717\e[m Update README.md
+* \e[33ma6f65aa\e[m nuget config ok with otkcrow as file copy instead of dll
+* \e[33m4935de9\e[m update csproj
+* \e[33m140b573\e[m put OpenTKCrowWin in game win
+* \e[33m9a001ca\e[m clean up master
+* \e[33ma312cd6\e[m Update README.md
+* \e[33m6d661b8\e[m proj files cleanup, nuget config
+*   \e[33m40f2225\e[m Merge branch 'devel'
+\e[1;33m|\e[m\e[1;34m\\e[m  
+\e[1;33m|\e[m * \e[33m42068f4\e[m use opentk.next
+* \e[1;34m|\e[m   \e[33m2295c61\e[m Merge pull request #8 from jpbruyere/devel
+\e[1;35m|\e[m\e[1;36m\\e[m \e[1;34m\\e[m  
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33mfc108e3\e[m Update README.md
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33mcadb435\e[m Update README.md
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33m61ce5f2\e[m update readme
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33mf78e02c\e[m update readme
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33m478a6c4\e[m update readme
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33me385c95\e[m nuget search path problems
+\e[1;35m|\e[m \e[1;34m|\e[m\e[1;34m/\e[m  
+\e[1;35m|\e[m * \e[33mdd280d3\e[m nuget search path problems
+\e[1;35m|\e[m * \e[33ma8e2778\e[m nuget search path problems
+\e[1;35m|\e[m * \e[33me35b524\e[m add nuget.targets and rename NuGet config
+\e[1;35m|\e[m * \e[33mecca638\e[m set custom build command to use xbuild to travis
+\e[1;35m|\e[m * \e[33md07aa23\e[m nuget config files
+\e[1;35m|\e[m * \e[33mbe589d1\e[m set solution level packages for nuget
+\e[1;35m|\e[m * \e[33md742b14\e[m nuget restore test
+\e[1;35m|\e[m * \e[33m496e19c\e[m add travis.yml
+\e[1;35m|\e[m * \e[33mb24beec\e[m lots of unordered changes, I commited all in a devel branch, which will be the programming branch
+\e[1;35m|\e[m\e[1;35m/\e[m  
+* \e[33m7621613\e[m clean csproj files
+* \e[33m2145412\e[m swap source and target mnemonic, I will use origin/destination for binding direction, here it's only where it is defined that is named source, and target is where a reference could need to be resolved
+* \e[33m10fd075\e[m global FontRenderingOptions for cairo
+* \e[33m2b4574f\e[m rename GraphicObjects to GraphicTree
+*   \e[33maed3905\e[m Merge pull request #7 from jpbruyere/dynSizing
+\e[31m|\e[m\e[32m\\e[m  
+\e[31m|\e[m * \e[33m4e3802b\e[m SDL work in progress
+\e[31m|\e[m * \e[33m5dc86e5\e[m divers
+\e[31m|\e[m * \e[33mea79505\e[m split CompilerServices objects in separate files, uid for GO even while not debugging
+\e[31m|\e[m * \e[33mc02ea44\e[m debug bindings when new value is null
+\e[31m|\e[m * \e[33m63cb467\e[m debug combobox
+\e[31m|\e[m * \e[33mb92a60c\e[m code clean
+\e[31m|\e[m * \e[33m02ac817\e[m glfw backend, group measure on change only
+\e[31m|\e[m * \e[33m8771dcc\e[m stack
+\e[31m|\e[m * \e[33m2361b6f\e[m Group basic sizing ok
+\e[31m|\e[m * \e[33mea355fe\e[m update test before changes
+\e[31m|\e[m\e[31m/\e[m  
+* \e[33mb3c2c1f\e[m DEBIG_FOCUS; min size returned for base GraphObj when in Fit mode
+\e[32m|\e[m * \e[33m68056c4\e[m\e[33m (\e[m\e[1;31morigin/testglbackend2\e[m\e[33m)\e[m copy old glbackend files, no changes made for now, not working
+\e[32m|\e[m\e[32m/\e[m  
+* \e[33m8876958\e[m adjust spinner properties, compute proportion in Double precision
+* \e[33me993815\e[m code clean
+* \e[33mbce6b29\e[m code clean
+* \e[33m9fc6231\e[m add some events to Button and IsPressed var
+* \e[33m8f841bd\e[m use int.MinValue as error mark while measuring object to requeue Layouting
+* \e[33me999316\e[m tab Thickness as Measure not int
+* \e[33mbbe51d8\e[m several fix, proportional Spinner
+*   \e[33ma01e514\e[m Merge pull request #6 from jpbruyere/ProportionalUI
+\e[34m|\e[m\e[35m\\e[m  
+\e[34m|\e[m * \e[33m7c5032b\e[m update packages
+\e[34m|\e[m * \e[33m62b0079\e[m update tests
+\e[34m|\e[m * \e[33m7ff5f14\e[m proportional ui
+\e[34m|\e[m * \e[33m0b005fe\e[m remove Bounds rectangle as private field for dims
+\e[34m|\e[m * \e[33mb7bd819\e[m Combo pages debug
+\e[34m|\e[m * \e[33m0490aef\e[m code clean
+\e[34m|\e[m\e[34m/\e[m  
+*   \e[33m45fb721\e[m Merge remote-tracking branch 'origin/ottd'
+\e[36m|\e[m\e[1;31m\\e[m  
+\e[36m|\e[m * \e[33mef53a23\e[m control insert in textBox
+\e[36m|\e[m * \e[33mb1df727\e[m add float conversion to compiler service
+\e[36m|\e[m * \e[33m76fe2b4\e[m add textbox text facilities and clipboard
+\e[36m|\e[m * \e[33m4621432\e[m add IBindable interface to base GraphicObject
+\e[36m|\e[m * \e[33me2915c3\e[m allow loading custom widgets
+\e[36m|\e[m * \e[33ma215115\e[m several changes to merge later
+* \e[1;31m|\e[m \e[33m7d8177d\e[m code clean
+* \e[1;31m|\e[m \e[33m075f279\e[m some border detection improvments
+\e[1;31m|\e[m\e[1;31m/\e[m  
+*   \e[33m22644af\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[1;32m|\e[m\e[1;33m\\e[m  
+* \e[1;33m|\e[m \e[33me506909\e[m Configuration class
+\e[1;33m|\e[m \e[1;33m|\e[m * \e[33m8d7b17f\e[m\e[33m (\e[m\e[1;31morigin/monodevelop\e[m\e[33m)\e[m try update monodevelop addin, workin progress
+\e[1;33m|\e[m \e[1;33m|\e[m\e[1;33m/\e[m  
+\e[1;33m|\e[m *   \e[33m356bfaa\e[m Merge pull request #5 from jpbruyere/TwoWayBindings
+\e[1;33m|\e[m \e[1;33m|\e[m\e[1;36m\\e[m  
+\e[1;33m|\e[m\e[1;33m/\e[m \e[1;36m/\e[m  
+\e[1;33m|\e[m * \e[33mc85cd50\e[m add Crow ref to OTKCrow
+\e[1;33m|\e[m * \e[33m0f8f59d\e[m add tab in TextBox
+\e[1;33m|\e[m * \e[33m7d1c6c5\e[m use nuget for Cairo
+\e[1;33m|\e[m * \e[33m18b2b07\e[m tab key
+\e[1;33m|\e[m * \e[33m7d84e81\e[m keypress event
+\e[1;33m|\e[m * \e[33m97e0683\e[m keyboard event handling
+\e[1;33m|\e[m * \e[33me216538\e[m refactor bindings to allow 2 way bindings
+\e[1;33m|\e[m\e[1;33m/\e[m  
+* \e[33m6b0d7e5\e[m try catch in Popper mouse leave, prevent exception when _content not sized
+* \e[33md27fabf\e[m remove IGOLibHost.cs
+* \e[33mcb66e67\e[m set CurrentInterface in CTOR of Interface
+* \e[33m48c126d\e[m fire Scrolled event in Scroller
+* \e[33mef7100e\e[m correct popper mouse leave bug
+* \e[33me5bb6ea\e[m search entry assembly for new crow widgets
+* \e[33m09e26d9\e[m test datasource null in bindings
+* \e[33m5049274\e[m add OTK mouse event if not in interface; add CTOR for graphic modes
+* \e[33m226be12\e[m ensure bindings are resolved as soon as chil is added
+* \e[33mcda826f\e[m remove IGOLibHost
+* \e[33ma4ba478\e[m combo popup sizing, binding creation in code
+* \e[33m2b314f4\e[m test recursive expandable
+* \e[33mcb358be\e[m don't test visibility of children in OnLayoutChange => solve recursive expanders bug
+* \e[33m03aa114\e[m update ignore list
+* \e[33m0ed518f\e[m update tests
+* \e[33mbf1c545\e[m divers
+* \e[33mf6418d2\e[m non blocking update mutex, removed delegates, test parent==null in clip registration
+*   \e[33ma14493c\e[m Merge pull request #4 from jpbruyere/MultithreadedInterface
+\e[31m|\e[m\e[32m\\e[m  
+\e[31m|\e[m * \e[33med16031\e[m divers
+\e[31m|\e[m * \e[33m63e3afd\e[m remove double buffered LayoutingQueue,use dirtyBmp for gl rendering
+\e[31m|\e[m * \e[33m3d9e221\e[m split update registration and user
+\e[31m|\e[m * \e[33mb7e8ad3\e[m split Update steps
+\e[31m|\e[m * \e[33mb4e4815\e[m lock RenderMutex when loading, test lqi==null, list loading slowed down
+\e[31m|\e[m * \e[33m2ad97c8\e[m add fps
+\e[31m|\e[m * \e[33m5e84ed9\e[m lock Interface when update
+\e[31m|\e[m * \e[33mc5d7f03\e[m first tests with Interface update in a separate thread
+\e[31m|\e[m * \e[33ma4e0b9b\e[m remove unecessary GOs array copy and reverse
+\e[31m|\e[m * \e[33mf2b0b19\e[m update mouse cursor for OTK container
+\e[31m|\e[m * \e[33m10c06ae\e[m debug after rebase
+\e[31m|\e[m * \e[33mb541408\e[m check content==null when Unpop
+\e[31m|\e[m * \e[33md9ec7ae\e[m update OpenTKGameWin with shared CrowInterface
+\e[31m|\e[m * \e[33ma25ff30\e[m CrowInterface object holding common functions, IGOLibHost removed
+\e[31m|\e[m * \e[33m70bcdc7\e[m GtkCrowContainer test, functionnal, keyboard issue
+\e[31m|\e[m * \e[33m328c6d4\e[m free Crow base from OpenTK
+\e[31m|\e[m * \e[33m2cb0e75\e[m update MouseState buttons
+\e[31m|\e[m * \e[33mfa6dd3d\e[m base changed done, need mouse state to be updated
+\e[31m|\e[m\e[31m/\e[m  
+* \e[33mc7a9d36\e[m update MessageBox template
+* \e[33m171d5ac\e[m update tests
+* \e[33md43fa6d\e[m window style
+* \e[33m4c068ba\e[m debug xmlloadingcount
+* \e[33mbfcc358\e[m ensure template are loaded when created in code
+* \e[33mf227139\e[m code clean
+* \e[33m35b5017\e[m debug bindings, clear only necessary bindings depending on source Instance changes
+* \e[33m4907f0a\e[m ensure Selection change is notified when data changed in listbox
+* \e[33mc16be86\e[m inverse Source and Target usage, deleteEventHandler
+* \e[33mbda85a5\e[m MessageBox styling and events
+* \e[33mdeece77\e[m combo debug
+*   \e[33m843d129\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[33m|\e[m\e[34m\\e[m  
+\e[33m|\e[m * \e[33mdc2ac1f\e[m message box events ok cancel
+* \e[34m|\e[m \e[33mcb1d5e6\e[m combo minimum size
+\e[34m|\e[m\e[34m/\e[m  
+* \e[33m1d5a243\e[m debug combobox
+* \e[33m83ed339\e[m clean
+* \e[33m63de922\e[m reset resolved state of binding when cleared
+* \e[33mba2b71d\e[m query layouting when image path change
+* \e[33mb855b28\e[m resolveBinding when datasource change event if dataSource is null
+* \e[33m04fa15e\e[m test selectedIndex<0 in listbox
+* \e[33m4320d25\e[m xmlignore LayoutingTries
+* \e[33ma4550b2\e[m debug paged listbox
+* \e[33m79282c0\e[m DataSource as full crow property with notify
+* \e[33m949d8d6\e[m add LogicalParent null test for getDataSource
+* \e[33m676857a\e[m debug listboxes
+* \e[33m68912ea\e[m spinner style
+* \e[33mf011ac7\e[m debug selectedItem in listbox
+* \e[33m76edc3c\e[m expandable image visibility <= Expandable.HasContent property
+* \e[33m3cb3ae6\e[m debug
+* \e[33m54ff9d8\e[m DefaultStyle attribute, loaded in defvalues
+* \e[33mdd66829\e[m replace StyleAttribute=>DefaultStyle
+* \e[33m42fcd36\e[m remove duplicate of LoadDefault for templated controls, add DEBUG_LOAD
+* \e[33mf927821\e[m use boolean state as svg sub-image in templated controls, solve initial state problem with propertyless bindings
+* \e[33m7fa677c\e[m simple styling test
+*   \e[33ma8156b1\e[m Merge branch 'DefTemplateSizing0'
+\e[35m|\e[m\e[36m\\e[m  
+\e[35m|\e[m * \e[33mbf27b88\e[m update testCheckbox
+\e[35m|\e[m * \e[33me341130\e[m force first child of group in Fit to Fit if no other child could be sized
+\e[35m|\e[m * \e[33m7e1fde1\e[m debug text sizing
+\e[35m|\e[m * \e[33ma8a5562\e[m splitted measure with fault checking, changing default template sizing to 0, lots of bugs.
+\e[35m|\e[m * \e[33m61d1d07\e[m improve layouting debug output
+\e[35m|\e[m * \e[33m3249b27\e[m add FindByName in HostContainer
+\e[35m|\e[m * \e[33md89859c\e[m removed useless RegisterForGraphicUpdate in GO CTOR
+\e[35m|\e[m * \e[33m809ef17\e[m dont clear Parent field, if object oldslot has to be repainted
+\e[35m|\e[m * \e[33m84bb37e\e[m close but on tabItem, SelectedTab checks
+\e[35m|\e[m * \e[33mcf6379f\e[m code clean
+\e[35m|\e[m * \e[33mcdded3a\e[m code clean
+\e[35m|\e[m * \e[33m0d8c157\e[m moving tabs
+\e[35m|\e[m * \e[33m03b4768\e[m code formating
+\e[35m|\e[m * \e[33mc8acef2\e[m ensure dirtyRects are added if dirtyState not cleared between updates
+\e[35m|\e[m * \e[33me717656\e[m tabView functionnal, mouse handling is a bit complicated, this should be improved
+\e[35m|\e[m * \e[33m20ea120\e[m code clean
+\e[35m|\e[m * \e[33m7901c19\e[m remove Hoverable
+\e[35m|\e[m * \e[33m0bba9f0\e[m Added Hoverable prop to GraphicObject, still have problem in tabview when hover another tab, content is also hover
+\e[35m|\e[m * \e[33m1a1b87d\e[m only upload to texture DirtyRect
+\e[35m|\e[m * \e[33m7a0f223\e[m dont start bound computation with an empty rect or bounds will always start at (0,0)
+\e[35m|\e[m * \e[33m0eb9fb4\e[m draw selected tab last, try mouseIsIn
+\e[35m|\e[m * \e[33m2def04e\e[m test mouse is in in reverse order
+\e[35m|\e[m * \e[33m413cc89\e[m tabItem onDraw
+\e[35m|\e[m * \e[33m93fd22a\e[m add SizePolicy properties
+\e[35m|\e[m * \e[33m6ef48fc\e[m debug stacking computation
+\e[35m|\e[m * \e[33m60542be\e[m Add ArrangeChildren boolean to ILayoutable
+\e[35m|\e[m * \e[33m3ee2668\e[m testing tabview, ChildLayoutConstraints
+\e[35m|\e[m * \e[33mc24b7bf\e[m ensure Children Property is used instead of private Field
+\e[35m|\e[m *   \e[33m692f9db\e[m Merge branch 'SizePolicyChecking' into NewWidgets
+\e[35m|\e[m \e[1;31m|\e[m\e[1;32m\\e[m  
+\e[35m|\e[m \e[1;31m|\e[m * \e[33md1953f0\e[m group in one loop size policy checking for generic stack, now there is problems for measureRawSize
+\e[35m|\e[m * \e[1;32m|\e[m \e[33m0c4b203\e[m clean using, TreeView and TabView empty c# file creation
+\e[35m|\e[m * \e[1;32m|\e[m \e[33m5d8196e\e[m resize also on 0 or itemindex-1
+\e[35m|\e[m * \e[1;32m|\e[m \e[33m49a8904\e[m clipping test in top container
+\e[35m|\e[m * \e[1;32m|\e[m \e[33m8b9093c\e[m Splitter
+\e[35m|\e[m \e[1;32m|\e[m\e[1;32m/\e[m  
+* \e[1;32m|\e[m \e[33m3c1dbdb\e[m remove unused DrawingIsValid
+* \e[1;32m|\e[m \e[33m4e60cac\e[m add clipping test in top container
+\e[1;32m|\e[m\e[1;32m/\e[m  
+* \e[33m2a44a31\e[m MouseCursor property in GOLIBHost; IsActive Prop in GraphicObject
+* \e[33m103791b\e[m\e[33m (\e[m\e[1;33mtag: 0.3\e[m\e[33m)\e[m preparing release 0.3
+* \e[33m2e5124c\e[m add template binding for props of button
+* \e[33m331908c\e[m add clean color test
+* \e[33mca41f68\e[m update nunit tests with new clipping algo
+* \e[33mf00a7ac\e[m comments
+*   \e[33m1a0b8d5\e[m Merge branch 'CompiledDefaultValueLoading'
+\e[1;33m|\e[m\e[1;34m\\e[m  
+\e[1;33m|\e[m * \e[33m15d9566\e[m pick custom attribute one by one, not in a loop
+\e[1;33m|\e[m * \e[33m14c9591\e[m reworked il generation for loadDefaultValues
+\e[1;33m|\e[m * \e[33m8657cca\e[m that's working, but convertions in IL has to be reworked
+\e[1;33m|\e[m * \e[33m304127f\e[m handle parsing of string value in defaultLoader
+\e[1;33m|\e[m * \e[33m639e2fe\e[m put LoadingDelegate in a dictionnary per type as Interface static field
+\e[1;33m|\e[m * \e[33m4b7c2c7\e[m create a dyn method for loading default values to try to speed up loading
+* \e[1;34m|\e[m   \e[33m970a3f7\e[m Merge branch 'NewClipping'
+\e[1;35m|\e[m\e[1;36m\\e[m \e[1;34m\\e[m  
+\e[1;35m|\e[m * \e[1;34m\\e[m   \e[33md1e33e2\e[m Merge branch 'ScrollingWithNewClipping' into NewClipping
+\e[1;35m|\e[m \e[31m|\e[m\e[32m\\e[m \e[1;34m\\e[m  
+\e[1;35m|\e[m \e[31m|\e[m * \e[1;34m|\e[m \e[33md6e8940\e[m debug scrolling in new Clipping system
+\e[1;35m|\e[m * \e[32m|\e[m \e[1;34m|\e[m \e[33m9175556\e[m add clipping to client zone with corner radius
+\e[1;35m|\e[m \e[32m|\e[m\e[32m/\e[m \e[1;34m/\e[m  
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33ma3e324b\e[m new clipping system nearly nickel
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33m46bad7b\e[m clipping basics ok for Group and PrivateContainer, problems with Templates
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33mf1f1437\e[m testing clipping rect registration, clear and clip, not working
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33ma823099\e[m separate RecreateCache and UpdateCache
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33m83c588a\e[m progressing, not using contextCoord anymore
+\e[1;35m|\e[m * \e[1;34m|\e[m \e[33m0f813f1\e[m temp save to make test in master
+\e[1;35m|\e[m\e[1;35m/\e[m \e[1;34m/\e[m  
+* \e[1;34m|\e[m \e[33m44caf51\e[m move computeCursorPosition outside UpdateGraphic (not always called), should call it less in the future
+* \e[1;34m|\e[m \e[33m0f8a647\e[m IsQueuedForRedraw boolean in each GO, to prevent searching in object list Move lastPaintedSlot update to Paint instead of UpdateGraphic which is not called if GO isn't cached
+* \e[1;34m|\e[m   \e[33mf2ceefa\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[33m|\e[m\e[1;34m\\e[m \e[1;34m\\e[m  
+\e[33m|\e[m \e[1;34m|\e[m\e[1;34m/\e[m  
+\e[33m|\e[m * \e[33m4684843\e[m clean using
+* \e[34m|\e[m \e[33m66b5781\e[m update test
+* \e[34m|\e[m \e[33mb7a6105\e[m debug Trend.cs
+* \e[34m|\e[m \e[33mfbb2fc5\e[m set default value for Value as Double in NumericControl
+* \e[34m|\e[m \e[33mb8c22d3\e[m clean using
+\e[34m|\e[m\e[34m/\e[m  
+* \e[33m3b43f50\e[m load default img if none is loaded
+* \e[33me962e4c\e[m debug
+* \e[33m3f2cf36\e[m update NUnit tests
+*   \e[33m70ea173\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[35m|\e[m\e[36m\\e[m  
+\e[35m|\e[m * \e[33m1883d59\e[m replace several implicit conversion with ExtensionMethod=>faster; default colorname equality=> ordinal
+* \e[36m|\e[m \e[33ma860d09\e[m update test
+* \e[36m|\e[m \e[33m5af8e3e\e[m LogicalParent use in all bindings; Resolved boolean in Binding class to avoid multiple event registration; resoved all tree in templated control, to allow complex bindings outside template content
+* \e[36m|\e[m \e[33mcf8fa60\e[m add focusable container to get MouseClick without making label text selectable
+* \e[36m|\e[m \e[33mf92c105\e[m Simpler Combo, derived from ListBox with a popper as template root
+* \e[36m|\e[m \e[33m3966d29\e[m replace several implicit conversion with ExtensionMethod=>faster; default colorname equality=> ordinal
+\e[36m|\e[m\e[36m/\e[m  
+* \e[33me615073\e[m update tests case
+* \e[33mba7ccac\e[m simple trending widget
+* \e[33mcf0052b\e[m allow binding of XmlIgnored props
+* \e[33m53928cc\e[m debug
+* \e[33mbddda84\e[m Add PopDirection to Popper Class
+* \e[33m3dd77aa\e[m add checked and unchecked events
+* \e[33mcfbc5bb\e[m prevent use of _hoverWidget, prefered property
+* \e[33med620f4\e[m Simplify Alignment Enum; add HorizontalStretch and VerticalStretch to GraphicObject
+* \e[33m9dd6470\e[m remove useless MouseClick (its overrided)
+* \e[33ma5eec67\e[m MaxLayoutingTries; CachingEnabled in GraphicObject + MaxCacheSize
+* \e[33md810ad1\e[m paged ListBox
+* \e[33m10b0b2b\e[m add GC Memory output
+* \e[33mcc07e6b\e[m testStacks
+* \e[33mb915ff1\e[m ensure Groups use Children property (overridable) instead of children field
+* \e[33me7f1d4e\e[m remove HostContainer.gobjsToRedraw.add(this),old clip added differently
+* \e[33m5617740\e[m update ProgressBar
+* \e[33mf1b44e1\e[m String.Equals ordinal in bindings and color lookup, RegisterForLayouting in Visible change
+* \e[33m1890cb3\e[m reaply binding modif: removed linq use
+* \e[33mbdbb1eb\e[m debug
+*   \e[33m31a67ec\e[m Merge SimplerLayoutingQueue
+\e[1;31m|\e[m\e[1;32m\\e[m  
+\e[1;31m|\e[m * \e[33mb4da579\e[m tests
+\e[1;31m|\e[m * \e[33md78137f\e[m code clean
+\e[1;31m|\e[m * \e[33mf5a17cd\e[m remove linq from Stack children sizing, improved computation
+\e[1;31m|\e[m * \e[33m46f593f\e[m prevent RegisterForLayouting when parent is null, and dequeue LQI when parent of GO is null
+\e[1;31m|\e[m * \e[33m1c7f2d6\e[m resolved Checkbox bug (template was modified), adjust several layout registering
+\e[1;31m|\e[m * \e[33mcb91338\e[m simpler layouting queue test
+\e[1;31m|\e[m * \e[33m4f73db4\e[m put test LayoutingType.None outside Stack test
+\e[1;31m|\e[m * \e[33m0cab76f\e[m test case for layouting
+\e[1;31m|\e[m * \e[33m45f41f6\e[m EnqueueBeforeParentSizing -> addLast instead of addFirst
+\e[1;31m|\e[m * \e[33m10f1267\e[m prevent stretched child from positionning in the direction of the stack
+\e[1;31m|\e[m * \e[33m4aad1e6\e[m prevent child positionning in a stack
+\e[1;31m|\e[m * \e[33m95e936c\e[m rename LayoutChangeEventArgs=>LayoutingEventArgs
+\e[1;31m|\e[m * \e[33m6577bc6\e[m use LayoutingType Enum everywhere instead of casting to (int)
+\e[1;31m|\e[m * \e[33m643d44f\e[m 2 step, 1=> Simple Register, 2=> Enqueue with priority checking
+\e[1;31m|\e[m * \e[33m27c400b\e[m dont use linq for searching registeredLQINodes
+\e[1;31m|\e[m * \e[33m9e7f05b\e[m new layouting update through events
+* \e[1;32m|\e[m \e[33m96eae25\e[m changed default solution compile config
+* \e[1;32m|\e[m \e[33m9559ce3\e[m remove linq search from deleteLQIs
+* \e[1;32m|\e[m \e[33mbf2a275\e[m Previous commit had changes from other branch, removed
+* \e[1;32m|\e[m \e[33m8346912\e[m remove use of linq in binding resolution, replaced with Dictionnary
+\e[1;32m|\e[m\e[1;32m/\e[m  
+* \e[33m759f4f3\e[m Textbox and Label: insert linebreak, update size if Fit
+* \e[33me864284\e[m ScrollBar derived from NumericControl
+* \e[33maabc901\e[m code clean
+* \e[33m9188b4a\e[m resolve several bug in scrollbar
+* \e[33m829c71b\e[m Revert "Merge branch 'GroupCacheEnableDisable'"
+* \e[33m192851b\e[m use base.OnDraw in Group
+* \e[33m6a6ea67\e[m code clean
+*   \e[33m016421c\e[m Merge branch 'GroupCacheEnableDisable'
+\e[1;33m|\e[m\e[1;34m\\e[m  
+\e[1;33m|\e[m * \e[33m7d507f3\e[m add Caching property to Group, to allow disabling caching for very often updated surface
+* \e[1;34m|\e[m \e[33macfb21c\e[m fix interface Reflexion in loop
+* \e[1;34m|\e[m \e[33m96bd9ab\e[m use StringComparison.Ordinal for dyn updates in bindings
+\e[1;34m|\e[m\e[1;34m/\e[m  
+* \e[33m2d20e04\e[m update ignore
+* \e[33mdc0acd6\e[m tests
+* \e[33m10b0365\e[m tests updates
+* \e[33ma705b3d\e[m register LinkedListNode, prevent uneeded cyclic ref
+* \e[33m64572f9\e[m LayoutingQueue as LinkedList<T>, perf improvments not fantastish
+* \e[33m335a36c\e[m MEASURE_TIME debug var
+* \e[33mba653e2\e[m update screenshot1
+* \e[33m8b0a9a6\e[m remove threading for ListBox, not functionnal
+* \e[33m488add6\e[m remove Lock for LayoutingQueue: no used for now
+* \e[33m7b8929e\e[m prevent children of uncached group to register for drawing (thats not saving so much time)
+* \e[33ma6779fb\e[m rename rectIsNotContainedInRectangles=>doesNotContain
+* \e[33mf013cad\e[m remove Paint override in scroller that was painting child 2 times
+*   \e[33mebaffeb\e[m Merge branch 'ReferencedLQIs'
+\e[1;35m|\e[m\e[1;36m\\e[m  
+\e[1;35m|\e[m * \e[33m14c1111\e[m new layouting queue with double linked list, buggy
+* \e[1;36m|\e[m \e[33m0cce95c\e[m update ignore
+\e[1;36m|\e[m\e[1;36m/\e[m  
+* \e[33md5f05d1\e[m test color list
+* \e[33m9e09e05\e[m Cast extention method for Type, used in binding resolution
+* \e[33m46560c8\e[m add error handling for CrowType not found in group children
+* \e[33m577c18f\e[m button clean
+*   \e[33ma67f75c\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[31m|\e[m\e[32m\\e[m  
+\e[31m|\e[m *   \e[33m0fdf520\e[m Merge branch 'master' of https://github.com/jpbruyere/Crow
+\e[31m|\e[m \e[33m|\e[m\e[34m\\e[m  
+* \e[33m|\e[m \e[34m\\e[m   \e[33m59b2c3e\e[m Gradient, Bitmap and Svg Filling
+\e[33m|\e[m\e[34m\\e[m \e[33m\\e[m \e[34m\\e[m  
+\e[33m|\e[m \e[34m|\e[m\e[33m/\e[m \e[34m/\e[m  
+\e[33m|\e[m\e[33m/\e[m\e[34m|\e[m \e[34m/\e[m   
+\e[33m|\e[m \e[34m|\e[m\e[34m/\e[m    
+\e[33m|\e[m * \e[33m67bd044\e[m Gradient, Bitmap and Svg Filling
+* \e[36m|\e[m \e[33m921126b\e[m Gradient, Bitmap and Svg Filling
+\e[36m|\e[m\e[36m/\e[m  
+* \e[33m2b08728\e[m Fix CRLF
+* \e[33m73b7c1d\e[m Revert "removed ixmlserializable from color, not functionnal"
+* \e[33m610dd6b\e[m IFill implementation
+* \e[33m7fe5cc0\e[m test stretched text, debug
+* \e[33ma05237c\e[m clean
+* \e[33me09e8bc\e[m removed ixmlserializable from color, not functionnal
+* \e[33m4af2d6a\e[m removed background image
+* \e[33m86238b1\e[m debug
+* \e[33m47fe040\e[m debug and improvments
+* \e[33m9fa17cd\e[m NUnit try, renaming, debugging and uniformizating
+* \e[33m0bf825f\e[m debug renaming, debug template loading not skipping template tag in templatedContainer
+* \e[33md33bdad\e[m renaming in README
+* \e[33mf137659\e[m Rename GOLib to Crow
+* \e[33mbd45fd6\e[m test refresh of scrollbar in listbox template, add RegisterForGraphicUpdate in scroller props
+* \e[33m8c60c6b\e[m resolve in scroller mouse handling bug, check if parent is scroller if mouse is in unscrolled bounds, saved and restrored when bubbling mouse mouve
+* \e[33m54756d4\e[m set debug details to 0
+* \e[33me3bb9b0\e[m Use of Slot.Dimentions in paint instead of Parent.Context(slot)
+\e[36m|\e[m * \e[33me530a40\e[m\e[33m (\e[m\e[1;31morigin/cairogl\e[m\e[33m)\e[m init textures to rgba(0,0,0,0) when created, window title bug
+\e[36m|\e[m * \e[33md15711a\e[m cairogl first test, not working
+\e[36m|\e[m\e[36m/\e[m  
+* \e[33mf2f2752\e[m implement sizing check in UpdateLayout
+* \e[33m6306b87\e[m Removed Sizing coherence check in RegisterForLayouting, check occuring during template load causing erratic sizing debug
+* \e[33mb6fccb7\e[m Prevent multiple template loading debug group and stack layouting , onLayoutChanged divers debug
+* \e[33m8678a13\e[m Group layouting debug (x positionning of children sized with fit) Prevent multiple loading of template and default values while creating XmlSerializer(type) Removed DynamicClass functions, not used for now. Divers debug
+*   \e[33mb23b66e\e[m Merge branch 'master' of https://github.com/jpbruyere/GOLib
+\e[1;32m|\e[m\e[1;33m\\e[m  
+\e[1;32m|\e[m * \e[33mf9a3099\e[m putOnTop as IGOLibInterface, popper putontop
+* \e[1;33m|\e[m \e[33m45ff312\e[m testRadioBut2
+\e[1;33m|\e[m\e[1;33m/\e[m  
+* \e[33m743e3b4\e[m update shader base class and textured shader to reflect GGL class changes
+\e[1;33m|\e[m * \e[33m8099f17\e[m\e[33m (\e[m\e[1;31morigin/glbackend\e[m\e[33m)\e[m glbackend tests, copy first try from hg repos
+\e[1;33m|\e[m\e[1;33m/\e[m  
+* \e[33mf31ffd6\e[m file dialog
+* \e[33m671366c\e[m reset scrollX and Y when scroller child is group and it's children have been cleared
+* \e[33mfb4a1ac\e[m chmod -x
+* \e[33m04e3244\e[m improved test for spinner and focus
+* \e[33mf5f814e\e[m test Directory viewer
+* \e[33m5223bf7\e[m Debug
+* \e[33md57ae20\e[m debug threaded listbox debug new binding system
+* \e[33m6bedf8d\e[m - GraphicTree parsing bindings in templates instead of using datasource which could be kept for other uses - ListBox bindings debug - LogicalParent for Popper to get correct DataSource for content
+* \e[33m97536ca\e[m allow private handler methods
+* \e[33m7112c07\e[m debug dyn event handle clearing
+* \e[33mae08f9c\e[m Bindings clearance, code clean
+* \e[33me3fbc04\e[m new binding system: DynEvents compilation
+* \e[33m15b8c20\e[m new binding system - Groupin in test case members of same target - bound created delegate to instance of source, prevent need of reference table.
+* \e[33m4c15030\e[m threaded combo, Monodevelop addin improve
+* \e[33m8dcac53\e[m generate c# with codedom for GOML MonoDevelop.GOLib addin
+* \e[33mbc12a8d\e[m debug, combo improvments
+* \e[33mf662d49\e[m * BmpPicture.cs:   allow unscalled picture
+* \e[33mdb3a636\e[m clean code
+*   \e[33ma91227a\e[m Merge branch 'master' of https://github.com/jpbruyere/GOLib
+\e[1;35m|\e[m\e[1;36m\\e[m  
+\e[1;35m|\e[m * \e[33mbc96190\e[m\e[33m (\e[m\e[1;33mtag: 0.2\e[m\e[33m)\e[m Update README.md
+* \e[1;36m|\e[m \e[33m41b76ea\e[m Combobox
+\e[1;36m|\e[m\e[1;36m/\e[m  
+* \e[33m3aba832\e[m clean tests
+* \e[33m7ce38b9\e[m screenshot update
+* \e[33m6847840\e[m typo and debug
+* \e[33m9d6c19a\e[m debug and typo
+* \e[33m92f6458\e[m add Checked and Unchecked events
+* \e[33mc9d9828\e[m * Interface.cs: * GraphicObject.cs: * TemplatedControl.cs: * CompilerServices.cs: Free references queue for dynamic bindings prevent adding reference to spurious object creation during serializer   init which cause alien ref impossible to clear
+* \e[33m4684df8\e[m Improved popper, Position popped window smartly, hide it when mouse leave it, and when popper is removed from rendering hierarchy
+* \e[33m1e3f153\e[m Check top Objects first if current hover widget not descendant of topmost GraphicObject in topContainer.GraphicObjects
+* \e[33mff40620\e[m clear binding of child when removed from group
+* \e[33m7c25a2d\e[m use addDelegate instead of set (to not erase other ones)
+* \e[33m63e0f0e\e[m * GOLib.csproj: removed unused WinForm ref, add readme
+* \e[33me349658\e[m debug and typo
+* \e[33m75bdbe5\e[m Templated Groupbox
+* \e[33m8d543b4\e[m Implement TemplatedWidth and TemplatedHeight PropertyLess bindings to propagate sizing policy inside template
+* \e[33mba8da35\e[m Improve PropertyLess bindings to handle other data types
+* \e[33m18e481d\e[m debug
+* \e[33m3e4b4eb\e[m make use of binding for default window
+* \e[33mb2bef25\e[m Color.Clear to make it possible transparency with GroupBox Title without the border over the text test0 to test the concept
+* \e[33m475b4dc\e[m ensure eventInfo is not null (could be null for propertyLess bindings)
+* \e[33m01ec9f5\e[m * Tests.csproj: * GOLIBTests.cs: * Popper.goml: * Checkbox.goml: * Expandable.goml: * RadioButton.goml: * test7.goml: * Popper.cs: * test4.1.goml: * test1.3.goml: * Checkbox.cs: * Expandable.cs: * RadioButton.cs: * testCheckbox.goml: * testRadioButton.goml: improve templates, set SvgSub as PropertyLess   binding updated with only
+* \e[33me568d13\e[m clear bindings of list items when data is change
+* \e[33m6d3c241\e[m dont load image if path is null
+* \e[33m1c4994e\e[m update and test Popper and Expandable templates with dynamic binding instead of onLoadTemplate hook
+* \e[33m42d9e26\e[m Clear Bindings when GraphicObject is destroyed
+* \e[33m4161571\e[m Draw borders inside Margin, this allow single level of border with margin, Background will mostly be set in child of border, if not border will have a background outside = Margin width
+* \e[33m99fff75\e[m messagebox + test + changes to default window template
+* \e[33m5286db0\e[m set default margin to 0 for label
+* \e[33ma5006f5\e[m * Spinner.goml, Window.cs:   debug
+* \e[33mb76c6bf\e[m listbox time loading tests
+* \e[33m3877825\e[m allow goml loading from memory stream with single call to getTopGraphicObject type when loading several time the same template.
+* \e[33m5a72cb5\e[m load goml with loop on xml attributes, not eventInfos and PropertyInfos, but it will not allow anymore to use custom name for xmlAttribute, they will always have to be the same as in c#
+* \e[33m0343102\e[m scrolling limit debug
+* \e[33m20b38d4\e[m Children as property
+* \e[33m11dcc34\e[m update template and tests with new sizing policy for stacks (stretched by default)
+* \e[33m8624ae1\e[m Allow one way binding with MemberLess value passed as string with ValueChanched event
+* \e[33med5441d\e[m Comments
+* \e[33m4e90f77\e[m removed unnecessary test for bounds in measureRawSize
+* \e[33ma876fd8\e[m TextRun
+* \e[33m7797eb5\e[m Grid control, Stack sizing default reset to stretched as all the other controls
+* \e[33m58e643b\e[m test
+* \e[33me931c79\e[m more simple default button svg
+* \e[33m019452b\e[m * GraphicObject.cs:   removed Mouse enter and leave debug message
+* \e[33m53457ed\e[m Hack hostClass to have it point to main window when custom class is passed as data source
+* \e[33m6f3b4f6\e[m Minimal requirements to have selected Item from ListBox
+* \e[33m660b6f0\e[m * Window.goml:
+* \e[33m9b49fb8\e[m ImagePath -> Image
+* \e[33me36790a\e[m notes
+* \e[33m83a4710\e[m use Interface.GetStreamFromPath to handle either file or resource in every loading places
+* \e[33m0c200d4\e[m simplify Loading, removed unnecessary overloads
+* \e[33mea0ee84\e[m * Tests.csproj: * GOLIBTests.cs: * GOLIBTest_1.cs: * GOLIBTest_0.cs: * GOLIBTest_5.cs: * GOLIBTest_3.cs: * GOLIBTest_fps.cs: * GOLIBTest_4.1.cs: * GOLIBTest_1.2.cs: * GOLIBTest_1.1.cs: * GOLIBTest_meter.cs: * GOLIBTest_Label.cs: * GOLIBTest_stack.cs: * GOLIBTest_HStack.cs: * GOLIBTest_Spinner.cs: * GOLIBTest_Scrollbar.cs: * GOLIBTest_Container.cs: * GOLIBTest_Expandable.cs: code cleaning, grouped tests
+* \e[33m302fd15\e[m directory viewer tests
+* \e[33mdcf100d\e[m * GOLib.csproj: * XCursor.cs: * OpenTKGameWindow.cs: * GOLIBTest_Window.cs: * Window.cs: * testWindow.goml: Horizontal and vertical Resizing
+* \e[33mc26d9c5\e[m Add redraw clip of graphic object put on top
+* \e[33maa140f4\e[m clip to client zone with corner radius code cleaning
+* \e[33mcc06e82\e[m code cleaning
+* \e[33ma7f82b9\e[m code cleaning
+* \e[33m143e2e8\e[m ensure mouse enter is fired on each level
+* \e[33m81bb03f\e[m Clear function
+* \e[33m967f9bb\e[m Dynamic layouting debug and improvments
+* \e[33mac08ff0\e[m * Tests.csproj: * Window.goml: * GOLIBTest_HStack.cs: * GOLIBTest_Window.cs: * testHStack.goml: * testWindow.goml: debug and tests
+* \e[33m167e50b\e[m Focus improvments: New function (checkHoverWidget) to check most inner control under the mouse, than bubble onMouseMove through the parents
+* \e[33mbacf29e\e[m * XCursor.cs: * move: * help: * hand: * cross: * arrow: * top_left_corner: * top_right_corner: * bottom_left_corner: * bottom_right_corner: Mouse xCursors
+* \e[33meca898b\e[m update refs
+* \e[33madb414a\e[m removed OpenTK from submodules, to simplified compilation
+* \e[33m549bd38\e[m debug
+* \e[33m6fd66d5\e[m * GOLib.sln: * GOLib.csproj: * GOLIBTest_0.cs: * GOLIBTest_fps.cs: * ReflexionExtensions.cs: * Label.cs: * test4.goml: * GenericStack.cs: * PrivateContainer.cs: * CompilerServices.cs:
+* \e[33mfcfe9c2\e[m Test stack example
+* \e[33m7f3b870\e[m Avoid some null exception while layouting when parent not already set, and raise exception when goml file not found
+* \e[33m4464d8c\e[m Item template property for listbox, added ItemTemplate for testTypeViewer
+* \e[33m4c45c1a\e[m allow reference to Object Tree with '/' despite of binding source
+* \e[33m24c01f3\e[m Documentation, analog meter tests
+* \e[33m61aeb72\e[m * OpenTK:
+* \e[33m639be44\e[m First working scrollbar with heavy use of binding and events in xml
+* \e[33m89f3b96\e[m advanced bindings with directory like syntax, need double direction binding
+* \e[33me335b36\e[m positif scrolling value scrollx and y as properties for xml binding
+* \e[33m8c99bee\e[m - simplify value change with only actual value, not the old one - First tests with Scrollbar
+* \e[33mdc995bd\e[m * OpenTK: * OpenTKGameWindow.cs:
+* \e[33m746f5cf\e[m -window, icons
+* \e[33m78e040f\e[m LastPainted slot clipping rect!
+* \e[33m3260d86\e[m - Window - Popper - redraw clipping debug, solved old top container clipping bug :-)
+* \e[33mf986e25\e[m - popper (buggy) - many redraw issue
+* \e[33m24cf921\e[m update readme
+* \e[33m5554858\e[m screenshot2
+* \e[33m04f0def\e[m - template attribute (in xml, and in c# for default one
+* \e[33m73c7ac9\e[m - fuse binding and event resolution contexts in GOMLResolver
+* \e[33m578341c\e[m - expandables - events resolution stacking - Inlined template - xmlserialization debugging
+* \e[33m18e9dca\e[m Allow on child in stack to have streatching size, to occupy remaining space if stack size is fixed or stretched. Usefull in the case of spinner for example.
+* \e[33md546161\e[m * Tests.csproj: * GOLIBTest_2.cs: * GOLIBTest_Spinner.cs: * test2.goml: * test4.goml: * testSpinner.goml: tests
+* \e[33m0128eeb\e[m - generic conversion through Parse method for custom type xml attribute
+* \e[33ma7363d1\e[m - min and max dimensions for objects
+* \e[33mef87679\e[m - Item template - Null binding for template items with "{}"
+* \e[33mc54c8b8\e[m listbox update
+* \e[33mb56c22a\e[m TemplatedControls, Picture objects for pixmap and svg raw data sharing among controls
+*   \e[33m999f18b\e[m Merge branch 'master' of https://github.com/jpbruyere/GOLib
+\e[31m|\e[m\e[32m\\e[m  
+\e[31m|\e[m * \e[33mdda922e\e[m Update README.md
+* \e[32m|\e[m \e[33m70c3f37\e[m Image loading detecting svg with extension, ressource tag (#) for pathes -svg sub element drawing
+\e[32m|\e[m\e[32m/\e[m  
+* \e[33mb98f9cd\e[m * GOLIBTest_fps.cs: divers
+* \e[33mfd19c1f\e[m Simple bindings demonstration in testFps
+*   \e[33m2a48f25\e[m Merge pull request #3 from jpbruyere/LayoutingQueue
+\e[33m|\e[m\e[34m\\e[m  
+\e[33m|\e[m * \e[33m40392cc\e[m Layouting queue, debug test4 validated
+\e[33m|\e[m * \e[33mc88d3c2\e[m Layouting queue test 2
+\e[33m|\e[m * \e[33m7b8ff62\e[m Layouting queue
+\e[33m|\e[m\e[33m/\e[m  
+*   \e[33m79224ff\e[m Merge branch 'master' of https://github.com/jpbruyere/GOLib
+\e[35m|\e[m\e[36m\\e[m  
+\e[35m|\e[m * \e[33mc362842\e[m Update README.md
+* \e[36m|\e[m \e[33mced2c01\e[m OpenTK as submodule \nInterface static class
+* \e[36m|\e[m \e[33m6a92795\e[m EventHandler extension method for handling test if null
+\e[36m|\e[m\e[36m/\e[m  
+*   \e[33m577d860\e[m Merge branch 'master' of https://github.com/jpbruyere/GOLib
+\e[1;31m|\e[m\e[1;32m\\e[m  
+\e[1;31m|\e[m * \e[33mf8283be\e[m Update README.md
+\e[1;31m|\e[m * \e[33m33ef06d\e[m Update README.md
+\e[1;31m|\e[m * \e[33m3cdbb58\e[m Update README.md
+* \e[1;32m|\e[m \e[33m1377490\e[m Multiline TextBox
+\e[1;32m|\e[m\e[1;32m/\e[m  
+* \e[33mb9ef3d3\e[m screenshot
+* \e[33m7249a05\e[m * MyClass.cs: * Key.cs: * GOLibView.cs: * GOLibGtkHost.cs: * Buttons.cs: * DisplayBinding.cs: * MouseState.cs: * AddinInfo.cs: * MonoDevelop.GOLib.csproj: * GOLibNodeExtension.cs: * AssemblyInfo.cs: * MouseEventArgs.cs: * MonoDevelop.GOLib.addin.xml: * KeyboardKeyEventArgs.cs: Monodevelop GOLib Addin
+* \e[33m30baf7a\e[m - svg image support - bug fixes
+* \e[33m4338402\e[m OpenGL indirect drawing for ui quad   (shader and vao)
+* \e[33m871f738\e[m test
+* \e[33m6554ed8\e[m - use latest improvments in test4.xml
+* \e[33me8b13fb\e[m CompilerServices for EventHandler statements in XML attributes Improve code formatting debug
+* \e[33m1753010\e[m clean csproj files
+* \e[33md5a5d95\e[m misa a jour
+* \e[33m02fed0f\e[m Update README.md
+* \e[33m1ad889b\e[m Create README.md
+* \e[33mdab0f2b\e[m first commit
index 68ae40e70c1c24a272299e6aa0cb5a9720550750..8b49d3653bc8e57d3aee70a80ae4aaf715ea1d9f 100644 (file)
@@ -64,6 +64,9 @@ namespace Crow
                public DebugEvent Parent;
                public List<DebugEvent> ChildEvents = new List<DebugEvent>();
 
+               public long Ticks { get { return Time.ElapsedTicks; }}
+
+
                public virtual void Start () {
                        Time = Stopwatch.StartNew();
                }
@@ -119,6 +122,11 @@ namespace Crow
                        saveTargetState ();
                        PreviousSlot = Target.LastSlots;
                }
+
+               public override string ToString ()
+               {
+                       return string.Format ("{0} {1} {2} {3} => {4}", Target, LayoutingType, EndResult, PreviousSlot, Slot);
+               }
        }
        #endif
 }
index 43ffedc6a6e1a45bb4887eb995a20fc2101dd053..3172e83cc880a698d4a37d171854cfc7398725a6 100644 (file)
@@ -214,10 +214,6 @@ namespace Crow
                }
                public override void OnLayoutChanges (LayoutingType layoutType)
                {
-                       #if DEBUG_LAYOUTING
-                       IFace.currentLQI.Slot = LastSlots;
-                       IFace.currentLQI.Slot = Slot;
-                       #endif
                        switch (layoutType) {
                        case LayoutingType.Width:
                                childrenRWLock.EnterReadLock ();
index 4fc7e669185db513cee62e6efea45c409ef8737f..3b8642886fe8716230d7967bc0b5cbf41bda47c8 100644 (file)
@@ -588,9 +588,9 @@ namespace Crow
                /// Result: the Interface bitmap is drawn in memory (byte[] bmp) and a dirtyRect and bitmap are available
                /// </summary>
                public void Update(){
-                       #if DBG_EVENTS
-                       DbgStartSubEvt(DbgEvtType.IFaceUpdate);
-                       #endif
+//                     #if DBG_EVENTS
+//                     DbgStartSubEvt(DbgEvtType.IFaceUpdate);
+//                     #endif
 
                        if (armedClickSender != null && clickTimer.ElapsedMilliseconds >= Interface.DoubleClick) {
                                armedClickSender.onMouseClick (armedClickSender, armedClickEvtArgs);                            
@@ -627,9 +627,9 @@ namespace Crow
 
                        Monitor.Exit (UpdateMutex);
 
-                       #if DBG_EVENTS
-                       DbgEndSubEvt ();
-                       #endif
+//                     #if DBG_EVENTS
+//                     DbgEndSubEvt ();
+//                     #endif
                }
                #if DEBUG_LAYOUTING
                public string BreakingName;
@@ -638,13 +638,18 @@ namespace Crow
                /// Layouting queue items. Failing LQI's are requeued in this cycle until MaxTry is reached which
                /// trigger an enqueue for the next Update Cycle</summary>
                protected virtual void processLayouting(){
-                       #if DBG_EVENTS
-                       DbgStartSubEvt(DbgEvtType.IFaceLayouting);
-                       #endif
-
                        if (Monitor.TryEnter (LayoutMutex)) {
                                DiscardQueue = new Queue<LayoutingQueueItem> ();
                                LayoutingQueueItem lqi;
+
+                               #if DBG_EVENTS
+                               bool logLayouting = false;
+                               if (LayoutingQueue.Count > 0){
+                                       DbgStartSubEvt(DbgEvtType.IFaceLayouting);
+                                       logLayouting = true;
+                               }
+                               #endif
+
                                while (LayoutingQueue.Count > 0) {
                                        lqi = LayoutingQueue.Dequeue ();
                                        #if DBG_EVENTS
@@ -655,19 +660,23 @@ namespace Crow
                                        DbgEndSubEvt();
                                        #endif
                                }
+
+                               #if DBG_EVENTS
+                               if (logLayouting)
+                                       DbgEndSubEvt();
+                               #endif
+
                                LayoutingQueue = DiscardQueue;
                                Monitor.Exit (LayoutMutex);
                                DiscardQueue = null;
                        }
-
-                       #if DBG_EVENTS
-                       DbgEndSubEvt();
-                       #endif
                }
                /// <summary>Degueue Widget to clip from DrawingQueue and register the last painted slot and the new one
                /// Clipping rectangles are added at each level of the tree from leef to root, that's the way for the painting
                /// operation to known if it should go down in the tree for further graphic updates and repaints</summary>
                void clippingRegistration(){
+                       if (ClippingQueue.Count == 0)
+                               return;
                        #if DBG_EVENTS
                        DbgStartSubEvt(DbgEvtType.IFaceClipping);
                        #endif
@@ -686,15 +695,16 @@ namespace Crow
                }
                /// <summary>Clipping Rectangles drive the drawing process. For compositing, each object under a clip rectangle should be
                /// repainted. If it contains also clip rectangles, its cache will be update, or if not cached a full redraw will take place</summary>
-               void processDrawing(){
-                       #if DBG_EVENTS
-                       DbgStartSubEvt(DbgEvtType.IFaceDrawing);
-                       #endif
+               void processDrawing(){                  
+
                        if (DragImage != null)
                                clipping.UnionRectangle(new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight));
                        using (surf = new ImageSurface (bmp, Format.Argb32, ClientRectangle.Width, ClientRectangle.Height, ClientRectangle.Width * 4)) {
                                using (ctx = new Context (surf)){
                                        if (!clipping.IsEmpty) {
+                                               #if DBG_EVENTS
+                                               DbgStartSubEvt(DbgEvtType.IFaceDrawing);
+                                               #endif
 
                                                for (int i = 0; i < clipping.NumRectangles; i++)
                                                        ctx.Rectangle(clipping.GetRectangle(i));
@@ -731,6 +741,9 @@ namespace Crow
                                                                //Console.WriteLine ("dragimage drawn: {0},{1}", DragImageX, DragImageY);
                                                        }
                                                }
+                                               #if DBG_EVENTS
+                                               DbgEndSubEvt ();
+                                               #endif
 
                                                #if DEBUG_CLIP_RECTANGLE
                                                clipping.stroke (ctx, Color.Red.AdjustAlpha(0.5));
@@ -768,9 +781,6 @@ namespace Crow
                                        //surf.WriteToPng (@"/mnt/data/test.png");
                                }
                        }
-                       #if DBG_EVENTS
-                       DbgEndSubEvt ();
-                       #endif
                }
                #endregion
 
@@ -836,12 +846,6 @@ namespace Crow
                                        g.Dispose ();
                                }
                        }
-                       #if DEBUG_LAYOUTING
-                       LQIsTries = new List<LQIList>();
-                       curLQIsTries = new LQIList();
-                       LQIs = new List<LQIList>();
-                       curLQIs = new LQIList();
-                       #endif
                }
                /// <summary> Put widget on top of other root widgets</summary>
                public void PutOnTop(GraphicObject g, bool isOverlay = false)
@@ -871,12 +875,13 @@ namespace Crow
                /// <summary>Search a Graphic object in the tree named 'nameToFind'</summary>
                public GraphicObject FindByName (string nameToFind)
                {
+                       GraphicObject r = null;
                        foreach (GraphicObject w in GraphicTree) {
-                               GraphicObject r = w.FindByName (nameToFind);
+                               r = w.FindByName (nameToFind);
                                if (r != null)
-                                       return r;
+                                       break;
                        }
-                       return null;
+                       return r;
                }
                #endregion