]> O.S.I.I.S - jp/crow.git/commitdiff
wip
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 6 Dec 2018 16:36:21 +0000 (17:36 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 6 Dec 2018 16:36:21 +0000 (17:36 +0100)
52 files changed:
Crow.csproj
CrowIDE/CrowIDE.csproj
CrowIDE/src/DesignInterface.cs
CrowIDE/src/Editors/Editor.cs
CrowIDE/src/Editors/ImlVisualEditor.cs
CrowIDE/src/Editors/SourceEditor.cs
CrowIDE/src/Editors/SvgEditor.cs
CrowIDE/src/ProjectTree/ProjectFile.cs
CrowIDE/src/ProjectTree/ProjectItem.cs
CrowIDE/src/ProjectTree/ProjectNodes.cs
CrowIDE/src/Solution.cs
CrowIDE/ui/CrowIDE.crow
CrowIDE/ui/DockWindows/winEditor.crow
CrowIDE/ui/IDE.style
CrowIDE/ui/MembersItem.template
CrowIDE/ui/ProjectTree.template
CrowIDE/ui/TreeExpandable.template
CrowIDE/ui/editors/EditTabItem.template [new file with mode: 0644]
CrowIDE/ui/editors/IMLEdit.itemp
CrowIDE/ui/editors/SrcEdit.itemp
CrowIDE/ui/editors/SvgEdit.itemp
Default.style
Templates/DockWindow.template
Templates/Expandable.template
Templates/TreeView.template
Tests/BasicTests.cs
Tests/GraphicObjects/LaggingGraphicObject.cs
Tests/Interfaces/Container/0.crow
Tests/Interfaces/Divers/testVisibility.crow [new file with mode: 0755]
Tests/Tests.csproj
Tests/test.style
Tests/ui/MenuItem.style
Tests/ui/MenuItem.template
src/Cairo/CairoHelpers.cs
src/Colors.cs
src/CompilerServices/CompilerServices.cs
src/ExtensionsMethods.cs
src/GraphicObjects/DockStack.cs
src/GraphicObjects/DockWindow.cs
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/TabItem.cs
src/GraphicObjects/TemplatedGroup.cs
src/GraphicObjects/TreeView.cs
src/Interface.cs
src/Mono.Cairo/Color.cs [deleted file]
src/Mono.Cairo/Context.cs
src/Mono.Cairo/Gradient.cs
src/Mono.Cairo/NativeMethods-internal.cs [new file with mode: 0644]
src/Mono.Cairo/NativeMethods.cs
src/Mono.Cairo/Rectangle.cs [deleted file]
src/Mono.Cairo/SolidPattern.cs
src/debug/DebugLogViewer.cs

index f181f154f47edb312f667da028c15f1e00a6560a..e06c7c71eb92691a6cd8098b1666b4a96c7a71a0 100644 (file)
@@ -32,7 +32,7 @@
     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
     <Optimize>false</Optimize>
     <OutputPath>$(SolutionDir)build\Debug</OutputPath>
-    <DefineConstants>DEBUG_DRAGNDROP0;DEBUG_LOG;XLIB_BACKEND0;DESIGN_MODE;DEBUG_UPDATE0;DEBUG_FOCUS0;DEBUG_DISPOSE0;TRACE0;DEBUG;MEASURE_TIME;DEBUG_LOAD0;DEBUG_BINDING0;DEBUG_CLIP_RECTANGLE0</DefineConstants>
+    <DefineConstants>DEBUG_DRAGNDROP0;DEBUG_LOG0;XLIB_BACKEND0;DESIGN_MODE;DEBUG_UPDATE0;DEBUG_FOCUS;DEBUG_DISPOSE0;TRACE0;DEBUG;MEASURE_TIME;DEBUG_LOAD0;DEBUG_BINDING0;DEBUG_CLIP_RECTANGLE0</DefineConstants>
     <EnvironmentVariables>
       <EnvironmentVariables>
         <Variable name="MONO_CAIRO_DEBUG_DISPOSE" value="1" />
     <Compile Include="src\Mono.Cairo\Antialias.cs" />
     <Compile Include="src\Mono.Cairo\Cairo.cs" />
     <Compile Include="src\Mono.Cairo\CairoDebug.cs" />
-    <Compile Include="src\Mono.Cairo\Color.cs" />
     <Compile Include="src\Mono.Cairo\Content.cs" />
     <Compile Include="src\Mono.Cairo\Context.cs" />
     <Compile Include="src\Mono.Cairo\DRMDevice.cs" />
     <Compile Include="src\Mono.Cairo\LineJoin.cs" />
     <Compile Include="src\Mono.Cairo\LinearGradient.cs" />
     <Compile Include="src\Mono.Cairo\Matrix.cs" />
-    <Compile Include="src\Mono.Cairo\NativeMethods.cs" />
     <Compile Include="src\Mono.Cairo\Operator.cs" />
     <Compile Include="src\Mono.Cairo\PSSurface.cs" />
     <Compile Include="src\Mono.Cairo\Path.cs" />
     <Compile Include="src\Mono.Cairo\Point.cs" />
     <Compile Include="src\Mono.Cairo\PointD.cs" />
     <Compile Include="src\Mono.Cairo\RadialGradient.cs" />
-    <Compile Include="src\Mono.Cairo\Rectangle.cs" />
     <Compile Include="src\Mono.Cairo\Region.cs" />
     <Compile Include="src\Mono.Cairo\ScaledFont.cs" />
     <Compile Include="src\Mono.Cairo\SolidPattern.cs" />
     <Compile Include="src\Mono.Cairo\XcbSurface.cs" />
     <Compile Include="src\Mono.Cairo\XlibSurface.cs" />
     <Compile Include="src\IML\IMLContext.cs" />
-    <Compile Include="src\Mono.Cairo\MeshPattern.cs" />
     <Compile Include="src\GraphicObjects\Shape.cs" />
     <Compile Include="src\IListChanged.cs" />
     <Compile Include="src\ObservableList.cs" />
     <Compile Include="src\backends\xlib\XLibBackend.cs" />
     <Compile Include="src\debug\DbgLogViewer.cs" />
     <Compile Include="src\debug\DbgEventTypeColors.cs" />
+    <Compile Include="src\Mono.Cairo\NativeMethods.cs" />
+    <Compile Include="src\Mono.Cairo\MeshPattern.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="System" />
     <None Include="Icons\compiler_warning.svg" />
     <None Include="Icons\compiler_warning_orange.svg" />
     <None Include="src\debug\DebugLogViewer.cs" />
+    <None Include="src\Mono.Cairo\NativeMethods-internal.cs" />
   </ItemGroup>
 </Project>
index 8cb90b0c3e509a0f2128f4fc56f7d36a6e057bd0..7f23c32a8881748734d15bc9acbe9014ca22d2ee 100644 (file)
     <EmbeddedResource Include="ui\DockWindows\winStyleView.crow" />
     <EmbeddedResource Include="ui\CategoryExp.template" />
     <EmbeddedResource Include="ui\DockWindows\winDesign.crow" />
+    <EmbeddedResource Include="ui\editors\EditTabItem.template">
+      <LogicalName>Crow.Coding.EditTabItem.template</LogicalName>
+    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
     <None Include="ui\test.crow">
index 9d0bfe9c4bf3ecab6b80736c5cc0eabb8b8b8ab8..7d9b8ad89684acf361a82e330fbb34add6526683 100644 (file)
@@ -67,6 +67,8 @@ namespace Crow.Coding
                }
                public override void ProcessResize (Rectangle bounds)
                {
+                       if (bounds == clientRectangle)
+                               return;
                        lock (UpdateMutex) {
                                clientRectangle = bounds;
                                surf.Dispose ();
@@ -82,8 +84,14 @@ namespace Crow.Coding
                public override GraphicObject Load (string path)
                {
                        ProjectFile pi;
-                       if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi))
-                               return CreateITorFromIMLFragment (pi.Source).CreateInstance();                  
+                       try {
+                               
+                               if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi))
+                                       return CreateITorFromIMLFragment (pi.Source).CreateInstance();                                  
+                       } catch (Exception ex) {
+                               
+                       }
+               
                        return null;
                }
                public override System.IO.Stream GetStreamFromPath (string path)
index 8ede10e3675b3509df3260d6458b684226c995a6..102debb5cbfdb0f8515192e1f87555df4160090a 100644 (file)
@@ -84,15 +84,18 @@ namespace Crow.Coding
 
                protected void backgroundThreadFunc () {
                        while (true) {
-                               if (IsReady) {                          
-                                       if (!projFile.RegisteredEditors [this]) {
-                                               projFile.RegisteredEditors [this] = true;
-                                               updateEditorFromProjFile ();
-                                       } else if (EditorIsDirty) {
-                                               EditorIsDirty = false;
-                                               updateProjFileFromEditor ();
+                               if (IsReady) {
+                                       if (Monitor.TryEnter (IFace.UpdateMutex)) {
+                                               if (!projFile.RegisteredEditors [this]) {
+                                                       projFile.RegisteredEditors [this] = true;
+                                                       updateEditorFromProjFile ();
+                                               } else if (EditorIsDirty) {
+                                                       EditorIsDirty = false;
+                                                       updateProjFileFromEditor ();
+                                               }
+                                               updateCheckPostProcess ();
+                                               Monitor.Exit (IFace.UpdateMutex);
                                        }
-                                       updateCheckPostProcess ();
                                }
                                Thread.Sleep (100);
                        }       
index e20ba1315bd0b8e2c802a0a86f25f28989af4f29..00d1ec96cb009b28a50e01586d30b94f71e18f1c 100644 (file)
@@ -279,9 +279,6 @@ namespace Crow.Coding
                                SelectedItem = go;
                        } catch (Exception ex) {
                                Error = ex;
-                               Debug.WriteLine ("Error Loading ui in Design iface\n" + ex.ToString ());
-                               if (Monitor.IsEntered(imlVE.UpdateMutex))
-                                       Monitor.Exit (imlVE.UpdateMutex);
                        }
                }
                protected override void updateCheckPostProcess ()
@@ -309,7 +306,11 @@ namespace Crow.Coding
                        base.OnLayoutChanges (layoutType);
                        switch (layoutType) {
                        case LayoutingType.Width:
+                               DesignWidth = Slot.Width * 100 / zoom;
+                               imlVE.ProcessResize (new Size(designWidth,designHeight));
+                               break;
                        case LayoutingType.Height:
+                               DesignHeight = Slot.Height * 100 / zoom;
                                imlVE.ProcessResize (new Size(designWidth,designHeight));
                                break;
                        }
@@ -324,6 +325,8 @@ namespace Crow.Coding
                        ProcessMouseMove (e.X - scr.X, e.Y - scr.Y);
 
                        GraphicObject newHW = HoverWidget;
+                       if (newHW == null)
+                               return;
 
                        if (draggedObj != null) {
                                if (draggedObj.Parent == null) {
@@ -389,7 +392,7 @@ namespace Crow.Coding
                {
                        base.onDraw (gr);
 
-                       Rectangle cb = new Rectangle (0, 0, designWidth, designHeight);// ClientRectangle;
+                       Rectangle cb = new Rectangle (0, 0, designWidth, designHeight);
 
                        gr.Save ();
 
@@ -424,7 +427,7 @@ namespace Crow.Coding
                                gr.Paint ();
                                imlVE.IsDirty = false;
                        }
-                       if (Error == null) {
+                       /*if (Error == null) {
                                gr.SetSourceColor (Color.Black);
                                gr.Rectangle (cb, 1.0 / z);
                        } else {
@@ -439,7 +442,7 @@ namespace Crow.Coding
 
                                }
                        }
-                       gr.Stroke ();
+                       gr.Stroke ();*/
 
                        Rectangle hr;
 
index 1b3b07dd5298b6a68cd46885ecbd7cad0c367dc1..4e8bcccd51fdc2a650a9eb59c68a90461853306b 100644 (file)
@@ -324,7 +324,7 @@ namespace Crow.Coding
                }
                void Buffer_PositionChanged (object sender, EventArgs e)
                {
-                       Console.WriteLine ("Position changes: ({0},{1})", buffer.CurrentLine, buffer.CurrentColumn);
+                       //Console.WriteLine ("Position changes: ({0},{1})", buffer.CurrentLine, buffer.CurrentColumn);
                        int cc = buffer.CurrentTabulatedColumn;
 
                        if (cc > visibleColumns + ScrollX) {
index 219eea67f263b46c241452feb0faa23c66d4b99a..163b5ac1e930b4d4c083bf08f75464bea925fc18 100644 (file)
@@ -88,6 +88,9 @@ namespace Crow.Coding
                                throw new NotImplementedException ();
                        }
                }
+               protected override bool IsReady {                       
+                       get { return projFile != null;  }
+               }
                #endregion
 
                #region GraphicObject overrides
index c26cb7cfb9d0852d568d2f154c3552288019a3df..2fab8ec49e7390c0f6cf58612eb2b9533a1c0297 100644 (file)
@@ -34,7 +34,7 @@ using System.Threading;
 namespace Crow.Coding
 {      
        public class ProjectFile : ProjectItem {                
-               protected bool isOpened = false;
+               bool isOpened = false;
                DateTime accessTime;
                string source;
                string origSource;
@@ -47,7 +47,7 @@ namespace Crow.Coding
                List<String> undoStack = new List<string>();
                List<String> redoStack = new List<string>();
 
-               public Crow.Command cmdSave, cmdSaveAs, cmdOpen, cmdUndo, cmdRedo;
+               public Crow.Command cmdSave, cmdSaveAs, cmdOpen, cmdClose, cmdUndo, cmdRedo;
 
                void initCommands (){
                        cmdSave = new Crow.Command (new Action (() => Save ()))
@@ -55,14 +55,20 @@ namespace Crow.Coding
                        cmdSaveAs = new Crow.Command (new Action (() => SaveAs ()))
                        { Caption = "Save As ..", Icon = new SvgPicture ("#Crow.Coding.icons.save.svg"), CanExecute = false };
                        cmdOpen = new Crow.Command (new Action (() => Open ())) 
-                       { Caption = "Open", Icon = new SvgPicture ("#Crow.Coding.icons.open.svg"), CanExecute = false };
+                       { Caption = "Open", Icon = new SvgPicture ("#Crow.Coding.icons.open.svg"), CanExecute = true };
+                       cmdClose = new Crow.Command (new Action (() => Close ())) 
+                       { Caption = "Close", Icon = new SvgPicture ("#Crow.Coding.icons.open.svg"), CanExecute = false };
                        cmdUndo = new Crow.Command (new Action (() => Undo (null))) 
                        { Caption = "Undo", Icon = new SvgPicture ("#Crow.Coding.icons.undo.svg"), CanExecute = false };
                        cmdRedo = new Crow.Command (new Action (() => Redo (null))) 
                        { Caption = "Redo", Icon = new SvgPicture ("#Crow.Coding.icons.redo.svg"), CanExecute = false };
 
                        Commands.Insert (0, cmdOpen);
-                       Commands.Insert (1, cmdSave);                   
+                       Commands.Insert (1, cmdSave);
+                       Commands.Insert (2, cmdSaveAs);
+                       Commands.Insert (3, cmdUndo);
+                       Commands.Insert (4, cmdRedo);
+                       Commands.Add (cmdClose);
                }
                public ProjectFile () {
                        initCommands();
@@ -85,7 +91,25 @@ namespace Crow.Coding
                                return node.SelectSingleNode ("LogicalName")?.InnerText;
                        }
                }
+               public bool IsOpened {
+                       get { return isOpened; }
+                       set {
+                               if (isOpened == value)
+                                       return;
+                               isOpened = value;
+
+                               cmdOpen.CanExecute = !isOpened;
+                               cmdClose.CanExecute = isOpened;
+                               cmdSave.CanExecute = isOpened && IsDirty;
 
+                               if (isOpened) 
+                                       Project.solution.OpenItem (this);
+                               else
+                                       Project.solution.CloseItem (this);                              
+
+                               NotifyValueChanged ("IsOpened", isOpened);
+                       }
+               }
                public void UnregisterEditor (object editor){
                        lock(RegisteredEditors){
                                RegisteredEditors.Remove (editor);
@@ -124,9 +148,11 @@ namespace Crow.Coding
                }
                public string Source {
                        get {
-                               if (!isOpened)
-                                       Open ();
-                               else {
+                               if (!IsOpened) {
+                                       using (StreamReader sr = new StreamReader (AbsolutePath))
+                                               source = sr.ReadToEnd ();
+                                       
+                               } else {
                                        if (DateTime.Compare (
                                                    accessTime,
                                                    System.IO.File.GetLastWriteTime (AbsolutePath)) < 0)
@@ -195,13 +221,13 @@ namespace Crow.Coding
                        }
                }
 
-               public void Open () {
+               public void Open () {                   
                        accessTime = System.IO.File.GetLastWriteTime (AbsolutePath);
                        using (StreamReader sr = new StreamReader (AbsolutePath)) {
                                source = sr.ReadToEnd ();
                        }
-                       isOpened = true;
                        origSource = source;
+                       IsOpened = true;
                        NotifyValueChanged ("IsDirty", false);
                }
                public virtual void Save () {
@@ -223,9 +249,8 @@ namespace Crow.Coding
                        NotifyValueChanged ("IsDirty", false);
                }
                public void Close () {
-                       origSource = null;
-                       isOpened = false;
-                       Project.solution.CloseItem (this);
+                       origSource = source = null;
+                       IsOpened = false;
                }
                public void Undo(object sender){
                        undo();
@@ -276,7 +301,15 @@ namespace Crow.Coding
 
                }
 
+               public void onDoubleClick (object sender, MouseButtonEventArgs e){
+                       if (IsOpened)
+                               return;
+                       Open ();
+               }
 
+               public void onClick (object sender, MouseButtonEventArgs e){
+                       IsSelected = true;
+               }
                public void OnQueryClose (object sender, EventArgs e){
                        if (IsDirty) {
                                MessageBox mb = MessageBox.ShowModal (CrowIDE.MainIFace,
index 7a30a8e17653a80d2f72052fcfaf5870fc6ecf45..71a0b0f3f9de9de4be37527c4a250b02282eb7ff 100644 (file)
@@ -71,6 +71,30 @@ namespace Crow.Coding
                public string HintPath {
                        get { return node.SelectSingleNode ("HintPath")?.InnerText; }
                }
+
+               public override bool IsSelected {
+                       get {
+                               return isSelected;
+                       }
+                       set {
+                               if (value == isSelected)
+                                       return;
+
+                               isSelected = value;
+
+                               NotifyValueChanged ("IsSelected", isSelected);
+
+                               if (isSelected) {
+                                       Project.solution.SelectedItem = this;
+                                       Project.IsExpanded = true;
+                                       ProjectNode pn = Parent;
+                                       while (pn != null) {
+                                               pn.IsExpanded = true;
+                                               pn = pn.Parent;
+                                       }
+                               }
+                       }
+               }
        }
 }
 
index b9c855f1f4a9fb0fcaeaea562394482967fcd190..b3b5e6c4f318866622486e037bb86d5de50fd8a9 100644 (file)
@@ -79,6 +79,7 @@ namespace Crow.Coding
 
                ProjectNode parent;
                bool isExpanded;
+               protected bool isSelected = false;
                ItemType type;
                string name;
                List<ProjectNode> childNodes = new List<ProjectNode>();
@@ -86,6 +87,18 @@ namespace Crow.Coding
                public Project Project;
                public List<Crow.Command> Commands;//list of command available for that node
 
+               public Crow.Picture Icon {
+                       get {
+                               switch (Type) {
+                               case ItemType.Reference:
+                                       return new SvgPicture ("#Crow.Icons.assembly.svg");
+                               case ItemType.ProjectReference:
+                                       return new SvgPicture("#Crow.Icons.projectRef.svg"); 
+                               default:
+                                       return new SvgPicture("#Crow.Coding.icons.file.svg"); 
+                               }
+                       }
+               }
                public ProjectNode Parent {
                        get { return parent; }
                        set { parent = value; }
@@ -124,7 +137,19 @@ namespace Crow.Coding
                                NotifyValueChanged ("IsExpanded", isExpanded);
                        }
                }
+               public virtual bool IsSelected
+               {
+                       get { return isSelected; }
+                       set
+                       {
+                               if (value == isSelected)
+                                       return;
+                               
+                               isSelected = value;
 
+                               NotifyValueChanged ("IsSelected", isSelected);
+                       }
+               }
                public override string ToString ()
                {
                        return DisplayName;
index 689228652bd0b1f753467c76f87a1582da4f8057..2295c330dbe6779fa65434dfc09431bdff73bbae 100644 (file)
@@ -159,7 +159,14 @@ namespace Crow.Coding{
                        set {
                                if (selectedItem == value)
                                        return;
+                               if (SelectedItem != null)
+                                       SelectedItem.IsSelected = false;
                                selectedItem = value;
+                               if (SelectedItem != null) 
+                                       SelectedItem.IsSelected = true;
+
+                               UserConfig.Set ("SelectedProjItems", SelectedItem?.AbsolutePath);
+
                                NotifyValueChanged ("SelectedItem", selectedItem);
                        }
                }
@@ -230,40 +237,30 @@ namespace Crow.Coding{
                                foreach (Project p in Projects) {
                                        ProjectFile pi;
                                        if (p.TryGetProjectFileFromAbsolutePath (f, out pi)) {
-                                               OpenedItems.AddElement (pi);
-                                               pi.Project.IsExpanded = true;
-                                               ProjectNode pn = pi.Parent;
-                                               while (pn != null) {
-                                                       pn.IsExpanded = true;
-                                                       pn = pn.Parent;
-                                               }
+                                               pi.Open ();
                                                if (pi.AbsolutePath == sel)
                                                        selItem = pi;
                                                break;
                                        }
                                }
                        }
-                       SelectedItem = selItem;//BUG: loading in another thread focused last loaded pf
+                       if (selItem == null)
+                               return;
+                       selItem.IsSelected = true;
                }
 
-               void onSelectedItemChanged (object sender, SelectionChangeEventArgs e){                 
-                       ProjectItem pi = e.NewValue as ProjectItem;
-                       if (pi != null) {                               
-                               if (!openedItems.Contains (pi)) {
-                                       openedItems.AddElement (pi);
-                                       saveOpenedItemsInUserConfig ();
-                               }
-                       }
-                       this.SelectedItem = pi;
+               /*void onSelectedItemChanged (object sender, SelectionChangeEventArgs e){                                                       
+                       SelectedItem = e.NewValue as ProjectItem;
                        UserConfig.Set ("SelectedProjItems", SelectedItem?.AbsolutePath);
+               }*/
+
+               public void OpenItem (ProjectItem pi) {
+                       if (!openedItems.Contains (pi)) {
+                               openedItems.AddElement (pi);
+                               saveOpenedItemsInUserConfig ();
+                       }
                }
-               public void OnCloseTab (object sender, MouseButtonEventArgs e){                 
-                       Console.WriteLine ("OnCloseTab");
-                       openedItems.RemoveElement ((sender as GraphicObject).DataSource as ProjectItem);
-                       saveOpenedItemsInUserConfig ();
-               }
-               public void CloseItem (ProjectItem pi) {
-                       Console.WriteLine ("CloseItem: " + pi.ToString());
+               public void CloseItem (ProjectItem pi) {                        
                        openedItems.RemoveElement (pi);
                        saveOpenedItemsInUserConfig ();
                }
index 1246e8c4de1e7f6f0d7f949bde102d084ad27ea9..94df6d676a7c20374e22a5b3ae7cdfb1e6d367c1 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<Window Height="Stretched" Width="Stretched" >
+<!--<Window Height="Stretched" Width="Stretched" >-->
        <VerticalStack>
                <Menu>
                        <MenuItem Caption="File" Width="Fit" PopWidth="120" DataSource="{CurrentSolution}">
@@ -55,4 +55,4 @@
                        </DockWindow>-->
 <!--           </Docker>-->
        </VerticalStack>
-</Window>
+<!--</Window>-->
index eb757b612ad2c055a3b4e011d05820991b48f901..c2029d5fc3d12aa3ea543bd667399710c0783947 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
 <DockWindow Name="winEditor" Caption="Edit View">
-       <EditPane DataSource="{CurrentSolution}" SelectedItem="{²SelectedItem}" SelectedItemElement="{²SelectedItemElement}" Data="{OpenedItems}" DataTest="Extension"
+       <EditPane DataSource="{CurrentSolution}"
+               SelectedItemElement="{²SelectedItemElement}" Data="{OpenedItems}" DataTest="Extension"
                ItemTemplate="#Crow.Coding.ui.EditPaneItems.template"/>
 </DockWindow>
index 1192964465e486efb4c0a9ca62b57bed813d37b3..9f01cc2d3af59af85ca26e66b5c85fb297b0f443 100644 (file)
@@ -33,6 +33,8 @@ WinSchema {
 }
 TabItem {
        AllowDrag="false";
+       Background="Onyx";
+       SelectedBackground="vgradient|0:DimGrey|0.4:Onyx";
 }
 TreeItemBorder {
        CornerRadius="2";
index ef2640180df26c2d6872f66742ba42986c336325..f1427e310b791bdc8ef1cd1f07258180896b554c 100755 (executable)
@@ -15,5 +15,5 @@
 </ItemTemplate>
 <ItemTemplate Path="#Crow.Coding.ui.ItemTemplates.Enum.template" DataType="System.Enum" />
 <ItemTemplate Path="#Crow.Coding.ui.ItemTemplates.Enum.template" DataType="Style" />
-<ItemTemplate Path="#Crow.Coding.ui.ItemTemplates.Fill.template" DataType="Crow.Fill"/>
+<!--<ItemTemplate Path="#Crow.Coding.ui.ItemTemplates.Fill.template" DataType="Crow.Fill"/>-->
        
\ No newline at end of file
index 6b6422f9562373eecce6c572163e36e8720c2aef..1b4b0543559b79f1f715980bf3fdcff8deb2da39 100644 (file)
@@ -1,12 +1,21 @@
 <?xml version="1.0"?>
 <ItemTemplate>
-       <Label Text="{}" Background="DarkRed" Foreground="White"/>
+       <Border Style="TreeItemBorder" ContextCommands="{Commands}" Focusable="true" MouseDown="onClick" MouseDoubleClick="onDoubleClick">
+               <Group>
+                       <GraphicObject Height="Stretched" Background="RoyalBlue" Visible="{IsSelected}"/>
+                       <HorizontalStack>
+                               <GraphicObject Width="5" Height="5"/>
+                               <Image Style="TreeIcon" Picture="{Icon}"/>
+                               <Label Text="{DisplayName}" Width="Stretched"/>
+                       </HorizontalStack>
+               </Group>
+       </Border>
 </ItemTemplate>
 <ItemTemplate DataType="Crow.Coding.Project" Data="RootItems" DataTest="Type">
        <Expandable Caption="{Name}" ContextCommands="{Commands}" IsExpanded="{²IsExpanded}">
                <Template>
                        <VerticalStack>
-                               <Border Style="TreeItemBorder" Focusable="false" MouseDoubleClick="./onClickForExpand">
+                               <Border Style="TreeItemBorder" Focusable="true" MouseDoubleClick="./onClickForExpand">
                                        <HorizontalStack Spacing="1">
                                                <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
                                                        Path="{./Image}"
@@ -16,7 +25,7 @@
                                                        MouseLeave="{Background=Transparent}"/>
                                                <Image Style="TreeIcon"
                                                        Path="#Crow.Icons.crowproj.svg"/>
-                                               <GraphicObject Width="2" Height="9" Background="Green" Visible="{IsStartupProject}"/>
+                                               <GraphicObject Width="4" Height="9" Background="Green" Visible="{IsStartupProject}"/>
                                                <Label Text="{./Caption}"/>
                                        </HorizontalStack>
                                </Border>
                </HorizontalStack>
        </Border>
 </ItemTemplate>
-<ItemTemplate DataType="Reference" DataTest="Type">
-       <Border Style="TreeItemBorder" ContextCommands="{Commands}">
-               <HorizontalStack>
-                       <GraphicObject Width="5" Height="5"/>
-                       <Image Style="TreeIcon"
-                               Path="#Crow.Icons.assembly.svg"/>
-                       <Label Text="{DisplayName}" Width="Stretched"/>
-               </HorizontalStack>
-       </Border>
-</ItemTemplate>
-<ItemTemplate DataType="ProjectReference" DataTest="Type">
-       <Border Style="TreeItemBorder" ContextCommands="{Commands}">
-               <HorizontalStack>
-                       <GraphicObject Width="5" Height="5"/>
-                       <Image Style="TreeIcon"
-                               Path="#Crow.Icons.projectRef.svg"/>
-                       <Label Text="{DisplayName}" Width="Stretched"/>
-               </HorizontalStack>
-       </Border>
-</ItemTemplate>
-<ItemTemplate DataType="Compile" DataTest="Type">      
-       <Border Style="TreeItemBorder" ContextCommands="{Commands}">
-               <HorizontalStack>                       
-                       <GraphicObject Width="5" Height="5"/>
-                       <Image Style="TreeIcon"
-                               Path="#Crow.Coding.icons.file.svg"/>
-                       <Label Text="{DisplayName}" Width="Stretched"/>
-               </HorizontalStack>
-       </Border>
-</ItemTemplate>
-<ItemTemplate DataType="EmbeddedResource" DataTest="Type">
-       <Border Style="TreeItemBorder" ContextCommands="{Commands}">
-               <HorizontalStack>
-                       <GraphicObject Width="5" Height="5"/>
-                       <Image Style="TreeIcon"
-                               Path="#Crow.Coding.icons.file.svg"/>
-                       <Label Text="{DisplayName}" Width="Stretched"/>
-               </HorizontalStack>
-       </Border>
-</ItemTemplate>
-<ItemTemplate DataType="None" DataTest="Type">
-       <Border Style="TreeItemBorder">
-               <HorizontalStack>
-                       <GraphicObject Width="5" Height="5"/>
-                       <Image Style="TreeIcon"
-                               Path="#Crow.Coding.icons.file.svg"/>
-                       <Label Text="{DisplayName}" Width="Stretched"/>
-               </HorizontalStack>
-       </Border>
-</ItemTemplate>
index 04313b1478c46febca84c75bdbb9df62787d2060..8191c3175dd3d3e174d5c36b7bc3520df23d6d5b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <VerticalStack>
-       <Border Style="TreeItemBorder" MouseDoubleClick="./onClickForExpand">
+       <Border Style="TreeItemBorder" MouseDoubleClick="./onClickForExpand">           
                <HorizontalStack Spacing="5">
                        <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
                                Path="{./Image}"
diff --git a/CrowIDE/ui/editors/EditTabItem.template b/CrowIDE/ui/editors/EditTabItem.template
new file mode 100644 (file)
index 0000000..f283c20
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<GenericStack Orientation="Vertical" Spacing="0"               
+       MouseEnter="{caption.Foreground=White}"
+       MouseLeave="{caption.Foreground=Grey}">
+       <HorizontalStack Margin="2" Left="{./TabOffset}"
+               Name="TabTitle"
+               HorizontalAlignment="Left"
+               Height="{./TabHeight}"
+               Width="{./TabWidth}">
+               <GraphicObject Width="5" Height="5" Background="Blue" Visible="{IsDirty}"/>
+               <Label Name="caption" Text="{DisplayName}" Foreground="Grey" Width="Stretched"/>
+               <Border CornerRadius="5" BorderWidth="1" Foreground="Transparent"  Height="12" Width="12"
+                                       MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+                       <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Images.Icons.exit2.svg"
+                                MouseClick="./butCloseTabClick"/>
+               </Border>
+       </HorizontalStack>
+       <Container Name="Content"/>
+</GenericStack>
\ No newline at end of file
index aee8cc9383387d264fcaf4d419f1eabf8784ebb4..b121f00a7859272c72a51fad6d96a7602ade3eef 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<TabItem Caption="{DisplayName}" QueryClose="OnQueryClose" Background="Jet">
+<TabItem QueryClose="OnQueryClose" IsSelected="{²IsSelected}" Template="#Crow.Coding.EditTabItem.template">
+
        <VerticalStack>
                <HorizontalStack Height="Fit" Margin="2" Spacing="5">
                        <HorizontalStack Width="Fit" Spacing="1">
@@ -24,8 +25,8 @@
                        <HorizontalStack>
                                <Scroller Name="scroller1" Margin="2" >
                                        <ImlVisualEditor  Foreground="SkyBlue" Name="editor" Background="Grey"                                          
-                                               VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10"
-                                               Width="512" Height="512" ContextCommands="{/Commands}"
+                                               VerticalAlignment="Top" HorizontalAlignment="Left" Margin="4"
+                                               ContextCommands="{/Commands}"
                                                AllowDrop="true" AllowDrag="true" Focusable="true"
                                                UpdateEnabled="{../../../../../IsSelected}"
                                                ProjectNode="{}" SelectedItem="{²SelectedItem}"/>
index ec67b550977869b101549e36ac39e797ef238715..e430324af9f659c5658074714b8ba267f0917282 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<TabItem Caption="{DisplayName}" QueryClose="OnQueryClose">
+<TabItem Caption="{DisplayName}" QueryClose="OnQueryClose" Template="#Crow.Coding.EditTabItem.template">
        <IMLContainer Path="#Crow.Coding.ui.SourceEditor.crow"/>
 </TabItem>
\ No newline at end of file
index 453ba95cfe961a2de13861bc19c05a8431b18d77..0466cc1af4234c5c6a41af013219791e88968732 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<TabItem Caption="{DisplayName}" QueryClose="OnQueryClose">
+<TabItem QueryClose="OnQueryClose" IsSelected="{²IsSelected}" Template="#Crow.Coding.EditTabItem.template">
        <VerticalStack>
                <VerticalStack Height="50%">
                        <HorizontalStack >
index c2f553e4b419862bf4ec8672ab7154a80cab6ebe..43c4cab86988727a01ec184b91e9e858ed4f2626 100644 (file)
@@ -56,8 +56,8 @@ MenuItem {
        //Background = "vgradient|0:DimGrey|1:Black";
        //Background = "Transparent";
        Foreground = "LightGrey";
-       MouseEnter = "{Background=SteelBlue;}";
-       MouseLeave = "{Background=Transparent;}";
+       //MouseEnter = "{Background=SteelBlue;}";
+       //MouseLeave = "{Background=Transparent;}";
        //MouseEnter = "{Background = vgradient|0:SteelBlue|1:Jet;Foreground=White;}";
        //MouseLeave = "{Foreground=LightGrey;Background=Transparent;}";
        SelectionBackground = "Transparent";
index b293e536184f113292c600201dbc31de0375968a..d69b471806769e30917cff16090b4e2ac7f3c476 100755 (executable)
@@ -5,7 +5,7 @@
                                MouseEnter="./onBorderMouseEnter"
                                MouseLeave="./onBorderMouseLeave">
        <VerticalStack Spacing="0">
-               <HorizontalStack Visible="{./IsDocked}" Height="Fit" Margin="0" Background="Black">
+               <HorizontalStack Visible="{./IsDocked}" Height="Fit" Margin="1" Background="vgradient|0:0.3,0.5,0.8,0.9|1:0.1,0.1,0.1,0.9">
                        <Label  Text="{./Caption}" TextAlignment="Left" Width="Stretched"
                                         Foreground="White" />
                        <Border CornerRadius="6" BorderWidth="1" Foreground="Transparent"  Height="10" Width="10"
index 20bc8f49221e94307c09faf8644ab4a3dc37f22c..1dbb07755cf49948cce119731d0079a8cf1d8032 100755 (executable)
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <Border Style="ControlBorder" Foreground="{./Foreground}" Background="{./Background}">
        <VerticalStack>
-               <HorizontalStack Spacing="1" Height="Fit" MouseDoubleClick="./onClickForExpand">
-                       <Container Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+               <HorizontalStack Spacing="1" Height="Fit" Focusable="true" MouseDoubleClick="./onClickForExpand">
+                       <Container Margin="1" Width="9" Height="9" MouseDown="./onClickForExpand"
                                                                                                                MouseEnter="{Background=LightGrey}"
                                                                                                                MouseLeave="{Background=Transparent}">
                                <Image
index 9c18120ec65940de55a899f88f4af7aea211dcbc..b8603d92e680a5a0abb95baa18f182e1cceff0b2 100644 (file)
@@ -12,5 +12,5 @@
                CursorSize="{../scroller1.ChildHeightRatio}"
                Value="{²../scroller1.ScrollY}"
                Maximum="{../scroller1.MaxScrollY}"
-               Width="14" Orientation="Vertical"/>
+               Width="12" Orientation="Vertical"/>
 </HorizontalStack>
index c8f71d9d8a9676f2ae8ebf4ccb534c6f22cc35c4..8984951b5aee076a75f776f150b4f8839b082e35 100644 (file)
@@ -4,15 +4,71 @@ using Crow;
 using System.Threading;
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.CompilerServices;
 
 namespace tests
 {
        class MainClass : Interface
        {
+               [DllImport ("dl", CallingConvention=CallingConvention.Cdecl)]
+               static extern IntPtr dlopen (string file, dlmode mode);
+               [DllImport ("dl", CallingConvention=CallingConvention.Cdecl)]
+               static extern int dlclose (IntPtr handle);
+               //void *dlsym(void *restrict handle, const char *restrict name); [Option End]
+               [DllImport ("dl", CallingConvention=CallingConvention.Cdecl)]
+               static extern IntPtr dlsym (IntPtr libHnd, string funcName);
+               [DllImport ("mono-2.0", CallingConvention=CallingConvention.Cdecl)]
+               static extern void mono_add_internal_call (string signature, IntPtr funcPtr);
+
+               [DllImport ("__Internal", EntryPoint="cairo_stroke", CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_stroke_internal (IntPtr ctx);
+               [DllImport ("__Internal", EntryPoint="cairo_rectangle", CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_rect_internal (IntPtr ctx, double x, double y, double w, double h);
+               [DllImport ("__Internal", EntryPoint="cairo_set_source_rgba", CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_rgba_internal (IntPtr ctx, double r, double g, double b, double a);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               public static extern void cairo_stroke (IntPtr ctx);
+
+               [Flags]
+               enum dlmode {
+                       RTLD_LOCAL = 0,
+                       RTLD_LAZY = 0x00001,        /* Lazy function call binding.  */
+                       RTLD_NOW = 0x00002,        /* Immediate function call binding.  */
+                       RTLD_BINDING_MASK = 0x3,        /* Mask of binding time value.  */
+                       RTLD_NOLOAD = 0x00004,        /* Do not load the object.  */
+                       RTLD_DEEPBIND = 0x00008,        /* Use deep binding.  */
+                       RTLD_GLOBAL = 0x00100,
+               }
+
+               const string cairoLibPath = @"/opt/cairo/lib/libcairo.so";
+               //static const string cairoLibPath = @"/opt/cairo/lib/libcairo.so.2.11513.0";
+
+               public delegate void Stroke(IntPtr ctx);
+               public delegate void Cairo4Doubles (IntPtr ctx, double x, double y, double z, double w);
+
+               public static Stroke cairo_stroke_func;
+               public static Cairo4Doubles cairo_rect_func;
+               public static Cairo4Doubles cairo_set_rgba_func;
+
+               /*[DllImport (cairoLibPath, EntryPoint="cairo_stroke")]
+               [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
+               public static extern void cairo_stroke_icall (IntPtr cr);*/
+
+
                static MainClass app;
                public Command CMDTest;
                public Measure TestWidth = 100;
 
+               public Crow.IML.Instantiator instFileDlg;
+
+               public string CurrentDirectory {
+                       get { return Crow.Configuration.Global.Get<string>("CurrentDirectory");}
+                       set {
+                               Crow.Configuration.Global.Set ("CurrentDirectory", value);
+                       }
+               }
+
                IList<Color> testList = Color.ColorDic.Values.ToList();
                public IList<Color> TestList {
                        set{
@@ -21,11 +77,11 @@ namespace tests
                        }
                        get { return testList; }
                }
-               public List<KeyValuePair<DbgEvtType, Color>> ColorsKVPList {
+               /*public List<KeyValuePair<DbgEvtType, Color>> ColorsKVPList {
                        get {
                                return DbgLogViewer.colors.ToList();
                        }
-               }
+               }*/
 
                protected override void InitBackend ()
                {
@@ -34,18 +90,35 @@ namespace tests
                }
                public static void Main(string[] args)
                {
+                       //IntPtr cairoLib = dlopen (cairoLibPath, dlmode.RTLD_LAZY);
+
+
+
+                       //mono_add_internal_call ("tests.MainClass:cairo_stroke_icall(IntPtr cr)", strokeFuncPtr);
+
+                       /*cairo_stroke_func = Marshal.GetDelegateForFunctionPointer<Stroke>(dlsym (cairoLib, "cairo_stroke"));
+                       cairo_rect_func = Marshal.GetDelegateForFunctionPointer<Cairo4Doubles>(dlsym (cairoLib, "cairo_rectangle"));
+                       cairo_set_rgba_func = Marshal.GetDelegateForFunctionPointer<Cairo4Doubles>(dlsym (cairoLib, "cairo_set_source_rgba"));
+*/
+
+
                        using (app = new MainClass ()) {
                                //                              XWindow win = new XWindow (app);
                                //                              win.Show ();
                                //app.LoadIMLFragment (@"<SimpleGauge Level='40' Margin='5' Background='Jet' Foreground='Grey' Width='30' Height='50%'/>");
 
-                               app.CMDTest = new Command(new Action(() => Console.WriteLine("test cmd"))) { Caption = "Test", Icon = new SvgPicture("#Tests.image.blank-file.svg"), CanExecute = true};
+                               app.CMDTest = new Command(new Action(() => app.AddWidget (app.instFileDlg.CreateInstance()).DataSource = app)) { Caption = "Test", Icon = new SvgPicture("#Tests.image.blank-file.svg"), CanExecute = true};
                                //app.AddWidget (@"Interfaces/Divers/testFocus.crow").DataSource = app;
                                //app.AddWidget (@"Interfaces/Divers/testMenu.crow").DataSource = app;
+                               app.AddWidget (@"Interfaces/Divers/testVisibility.crow").DataSource = app;
                                //app.AddWidget (@"Interfaces/Divers/0.crow").DataSource = app;
                                //app.AddWidget (@"Interfaces/Splitter/1.crow").DataSource = app;
                                //app.AddWidget (@"Interfaces/Container/0.crow").DataSource = app;
+                               //app.AddWidget (@"Interfaces/TemplatedContainer/test_Listbox.crow").DataSource = app;
 
+                               app.instFileDlg = Crow.IML.Instantiator.CreateFromImlFragment
+                                       (app, "<FileDialog Caption='Open File' CurrentDirectory='{²CurrentDirectory}'/>");
+                               
 
                                //app.AddWidget (@"Interfaces/Divers/colorPicker.crow").DataSource = app;
                                //app.AddWidget ("Interfaces/Divers/perfMeasures.crow").DataSource = app;
@@ -58,7 +131,7 @@ namespace tests
                                (go.FindByName("combo") as ComboBox).SelectedItemChanged += combo_selectedItemChanged;
                                (go.FindByName("kvpList") as ListBox).SelectedItemChanged += kvpList_selectedItemChanged;*/
 
-                               app.AddWidget (@"Interfaces/Experimental/testDock.crow").DataSource = app;
+                               //app.AddWidget (@"Interfaces/Experimental/testDock.crow").DataSource = app;
 
                                /*app.LoadIMLFragment (@"<DockWindow Width='150' Height='150' Name='dock1'/>");
                                app.LoadIMLFragment (@"<DockWindow Width='150' Height='150' Name='dock2'/>");
@@ -116,15 +189,18 @@ namespace tests
                     }
                 }
             }*/
+
+
+                       //dlclose (cairoLib);
                }
 
-               void onColorUpdate (object sender, MouseButtonEventArgs e)
+               /*void onColorUpdate (object sender, MouseButtonEventArgs e)
                {
                        DbgLogViewer.colorsConf.Set (selectedEvtType.ToString (), newColor);
                        DbgLogViewer.colors [selectedEvtType] = newColor;
                        NotifyValueChanged ("ColorsKVPList", ColorsKVPList);
                }
-               static DbgEvtType selectedEvtType;
+               //static DbgEvtType selectedEvtType;
                static Color newColor;
 
                static void kvpList_selectedItemChanged (object sender, SelectionChangeEventArgs e)
@@ -137,7 +213,7 @@ namespace tests
                {
                        newColor = (Color)e.NewValue;
 
-               }
+               }*/
 
                void App_KeyboardKeyDown (object sender, KeyEventArgs e)
                {
@@ -145,16 +221,17 @@ namespace tests
                        //#if DEBUG_LOG
                        switch (e.Key) {
                        case Key.F2:                            
-                               DebugLog.save (app);
+                               //DebugLog.save (app);
                                break;
                        case Key.F4:                            
-                               app.NotifyValueChanged ("ColorsKVPList", app.ColorsKVPList);
+                               //app.NotifyValueChanged ("ColorsKVPList", app.ColorsKVPList);
                                break;
-                       case Key.F6:                            
-                               saveDocking ();
+                       case Key.F6:
+                               app.LoadIMLFragment (@"<FileDialog Caption='Open File'/>");
+                               //saveDocking ();
                                break;
                        case Key.F7:                            
-                               reloadDocking ();
+                               //reloadDocking ();
                                break;
                        case Key.F8:                            
                                app.LoadIMLFragment (@"<DockWindow Width='150' Height='150'/>");
index 98aeaf15b4c209f05f0e703831feb866a1d533bd..82cf0bfcf359f532993706ae7896f92568822bd0 100644 (file)
@@ -27,6 +27,7 @@ using System;
 using Crow;
 using System.ComponentModel;
 using Cairo;
+using System.Diagnostics;
 
 namespace Crow
 {
@@ -36,14 +37,40 @@ namespace Crow
                {
                        base.onDraw (gr);
 
+                       Stopwatch t = Stopwatch.StartNew ();
 
-                       for (int i = 0; i < 100000; i++) {
-                               gr.SetSourceColor (Color.Red);
+                       IntPtr ctxHnd = gr.Handle;
+
+                       for (int i = 0; i < 1000000; i++) {
+                               
+                               /*gr.SetSourceRGBA (1.0,0.0,0.0,1.0);
                                gr.Rectangle (0, 0, 100, 100);
-                               gr.Stroke ();
+                               gr.Stroke ();*/
+
+                               /*Cairo.NativeMethods.SetSourceRGBA (ctxHnd, 1.0,0.0,0.0,1.0);
+                               Cairo.NativeMethods.Rectangle (ctxHnd, 0, 0, 100, 100);
+                               Cairo.NativeMethods.Stroke (ctxHnd);*/
+
+
+                               //tests.MainClass.cairo_set_rgba_func (ctxHnd, 1.0,0.0,0.0,1.0);
+                               //tests.MainClass.cairo_rect_func (ctxHnd, 0, 0, 100, 100);
+                               //tests.MainClass.cairo_stroke_func (ctxHnd);
+
+                               tests.MainClass.cairo_rgba_internal (ctxHnd, 1.0,0.0,0.0,1.0);
+                               tests.MainClass.cairo_rect_internal (ctxHnd, 0, 0, 100, 100);
+                               tests.MainClass.cairo_stroke_internal (ctxHnd);
+                               //tests.MainClass.cairo_stroke (ctxHnd);
+                               //tests.MainClass.cairo_stroke_icall (ctxHnd);
+
+
 
                        }
 
+
+                       t.Stop ();
+
+                       Console.WriteLine("elapsed ticks = {0}", t.ElapsedTicks);
+
                        //System.Threading.Thread.Sleep (1000);
 
                }
index 2f662fe81f7dd37fcef8b95ff2af80cacd33660f..ee5ccdcf214f5bc3ea65fef6a6ac73c7421319a0 100755 (executable)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
-<VerticalStack Margin="10" Background="Jet" >
-       <Label Text="{CPT}" Background="Red" Font="mono, 60" Margin="0"/>
+<VerticalStack Margin="10" Background="Jet" >  
        <LaggingGraphicObject Name="lagging" Margin="10"  Background="{TestColor}"/>
 </VerticalStack>
                
diff --git a/Tests/Interfaces/Divers/testVisibility.crow b/Tests/Interfaces/Divers/testVisibility.crow
new file mode 100755 (executable)
index 0000000..70abcbd
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Container Margin="20" Background="Red" >
+       <Container Margin="20" Background="Green" MouseDown="{../go1.Visible=True}" >
+               <GraphicObject Name="go1" Margin="20" Background="DimGrey" Visible="false" MouseDown="{Visible=false}"
+                       MouseEnter="{Background=Blue}"
+                       MouseLeave="{Background=DimGrey}"/>
+       </Container>
+</Container>
index 2d3717cfe69e17a744d57a4c2c55c0c4d4ccb36d..a6c010315bbd8286e8714e6f8a7549119c773413 100644 (file)
     <None Include="Interfaces\Divers\testMenu.crow">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="Interfaces\Divers\testVisibility.crow">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Interfaces\" />
index 7f912f5424c1090c9f181125feb52b245753b0ff..e650a05b753531b2618df07b8623fb8129e70a0b 100644 (file)
@@ -40,4 +40,4 @@ DbgLogViewer{
 }
 DockWindow{
        Background = "0.1,0.1,0.1,0.5";
-}
+}
\ No newline at end of file
index 15778e687da5a09e4d94bf6f063424003d748080..2c0ada73d67016a240614ac141c8ee8d54168c28 100644 (file)
@@ -5,7 +5,7 @@ Margin="2";
 CornerRadius="0";
 TextAlignment="Left";
 Foreground="Grey";
-MouseEnter = "{Background=SeaGreen;Foreground=White;}";
-MouseLeave = "{Background=Transparent;Foreground=Grey;}";
+//MouseEnter = "{Background=SeaGreen;Foreground=White;}";
+//MouseLeave = "{Background=Transparent;Foreground=Grey;}";
 MouseDown = "{Background=White;Foreground=DimGrey;}";
 MouseUp = "{Background=SeaGreen;Foreground=White;}";
index bf01f99ddbb867e8e1fa4c29e347028d1b016b1c..e959b7d2955af39621ed81a2a28aecc43737fe33 100644 (file)
@@ -6,10 +6,6 @@
                <CheckBox IsChecked="{²./IsPopped}" Caption="{./Caption}" Background="{./Background}" Foreground="{./Foreground}">
                        <Template>
                                <Border Name="border1"
-                                               MouseEnter="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
-                                               MouseLeave="{Foreground=Transparent}"
-                                               MouseDown="{Foreground=vgradient|0:Black|0.05:Grey|0.85:Grey|1:White}"
-                                               MouseUp="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
                                                MinimumSize = "40,0"
                                                Foreground="Transparent"
                                                Background="{./Background}">
index 3b771c3800042b809c892184a04b2327e3e767c2..032980d0164142991507c5787dd88e35c7d59634 100644 (file)
@@ -73,7 +73,7 @@ namespace Crow
                        if (stroke>0.0) {
                                gr.LineWidth = stroke;
                                double hsw = stroke / 2.0;
-                               DrawRoundedRectangle (gr, r.X + hsw, r.Y + hsw, r.Width - stroke, r.Height - stroke, radius);
+                               DrawRoundedRectangle (gr, hsw + r.X, hsw + r.Y, (double)r.Width - stroke, (double)r.Height - stroke, radius);
                                gr.Stroke ();
                        }else
                                DrawRoundedRectangle(gr, r.X, r.Y, r.Width, r.Height, radius);
index 8e501b336c14255332ecefb55a845183e37d9b37..1da991357871f300c4bc072210a1e6f3b89c0ce3 100644 (file)
@@ -130,16 +130,6 @@ namespace Crow
                                double.Parse(c[3]));
                }
 
-//             public static implicit operator OpenTK.Vector4(Color c)
-//             {
-//                     return new OpenTK.Vector4 ((float)c.R, (float)c.G, (float)c.B, (float)c.A);
-//             }
-//             public static implicit operator Color(OpenTK.Vector4 v)
-//             {
-//                     return new Color (v.X, v.Y, v.Z, v.W);
-//             }
-
-
                public static bool operator ==(Color left, Color right)
                {
                        if (left.predefinied & right.predefinied)
index e315f7616d951cfa8f0c267186ca559f3280a1ca..6ceff045af8239bffc3e761d7f79c388c23f555d 100644 (file)
@@ -804,7 +804,7 @@ namespace Crow.IML
                                                il.Emit (OpCodes.Ldstr, operandes [1].Trim ());
                                        }
                                        il.Emit (OpCodes.Callvirt, lopParseMi);
-                                       il.Emit (OpCodes.Unbox_Any, lopPI.PropertyType);
+                                       //il.Emit (OpCodes.Unbox_Any, lopPI.PropertyType);
                                        //emit left operand assignment
                                        il.Emit (OpCodes.Callvirt, lopPI.GetSetMethod());
                                } else {//tree parsing and propert gets
index 340a8ceb511eabb01fb80179d04e727132259755..ecbc8a7234449f04f7bc74c5f5ded99feef57014 100644 (file)
@@ -153,13 +153,14 @@ namespace Crow
                        ctx.LineWidth = stroke;
                        ctx.Stroke ();
                }
+
                public static void SetSourceColor(this Cairo.Context ctx, Color c)
                {
                        ctx.SetSourceRGBA(c.R,c.G,c.B,c.A);
                }
                public static void AddColorStop(this Cairo.Gradient grad, double offset, Color c)
                {
-                       grad.AddColorStop (offset, new Cairo.Color (c.R, c.G, c.B, c.A));
+                       grad.AddColorStop (offset, c);
                }
                #endregion
 
index aa7c33da7fdd5a0ad8bd3cd6ca41b16c7f24ea7c..75f0d2bb1b0a6a8a82bd88a584016bd76cb33c14 100644 (file)
@@ -116,9 +116,9 @@ namespace Crow
                {
                        if (IsDropTarget) {                             
                                DockWindow dw = IFace.DragAndDropOperation.DragSource as DockWindow;
-                               if (dw.IsDocked) {
-                                               base.onMouseMove (sender, e);
-                                               return;
+                               if (dw == null || dw.IsDocked) {
+                                       base.onMouseMove (sender, e);
+                                       return;
                                }
 
                                Alignment curDockPos = dw.DockingPosition;
@@ -416,6 +416,9 @@ namespace Crow
                                        dw.Width = Measure.Parse (getConfAttrib (conf, ref i));
                                        dw.Height = Measure.Parse (getConfAttrib (conf, ref i));
                                        dw.DockingPosition = (Alignment)Enum.Parse (typeof(Alignment), getConfAttrib (conf, ref i));
+                                       dw.savedSlot = Rectangle.Parse (getConfAttrib (conf, ref i));
+                                       dw.wasResizable = Boolean.Parse (getConfAttrib (conf, ref i));
+
                                        dw.IsDocked = true;
                                        dw.DataSource = dataSource;
                                        this.AddChild (dw);
@@ -450,7 +453,7 @@ namespace Crow
                        for (int i = 0; i < Children.Count; i++) {
                                if (Children [i] is DockWindow) {
                                        DockWindow dw = Children [i] as DockWindow;
-                                       tmp.Append (string.Format("WIN;{0};{1};{2};{3};",dw.Name, dw.Width, dw.Height, dw.DockingPosition));
+                                       tmp.Append (string.Format("WIN;{0};{1};{2};{3};{4};{5};",dw.Name, dw.Width, dw.Height, dw.DockingPosition, dw.savedSlot, dw.wasResizable));
                                } else if (Children [i] is DockStack) {
                                        DockStack ds = Children [i] as DockStack;
                                        tmp.Append (string.Format("STK;{0};{1};{2};{3}", ds.Width, ds.Height, ds.Orientation, ds.exportConfig()));
index d6385057a4fcbb62c11b4aa95928494e1449d49b..e368db516795081abfe0f6b49d0e92d14058329f 100644 (file)
@@ -40,8 +40,8 @@ namespace Crow
                Alignment docking = Alignment.Undefined;
 
                Point undockingMousePosOrig; //mouse pos when docking was donne, use for undocking on mouse move
-               Rectangle savedSlot;    //last undocked slot recalled when view is undocked
-               bool wasResizable;
+               internal Rectangle savedSlot;   //last undocked slot recalled when view is undocked
+               internal bool wasResizable;
 
                public bool IsDocked {
                        get { return isDocked; }
@@ -64,7 +64,6 @@ namespace Crow
                                NotifyValueChanged ("DockingPosition", DockingPosition);
                        }
                }
-
                public override bool PointIsIn (ref Point m)
                {                       
                        if (!base.PointIsIn(ref m))
@@ -136,10 +135,10 @@ namespace Crow
 
                                IFace.AddWidget (this);
 
-                               this.Left = savedSlot.Left;
-                               this.Top = savedSlot.Top;
-                               this.Width = savedSlot.Width;
-                               this.Height = savedSlot.Height;
+                               Left = savedSlot.Left;
+                               Top = savedSlot.Top;
+                               Width = savedSlot.Width;
+                               Height = savedSlot.Height;
 
                                IsDocked = false;
                                DockingPosition = Alignment.Undefined;
index 747609b08619976dcae527d0f7650cf2fce9b140..ec4fa173ba2bcccafc1935ad12c4bfcdaacb1511 100644 (file)
@@ -277,14 +277,14 @@ namespace Crow
                Fill background = Color.Transparent;
                Fill foreground = Color.White;
                Font font = "droid, 10";
-               Measure width, height;
+               protected Measure width, height;
                int left, top;
                double cornerRadius = 0;
                int margin = 0;
                bool focusable = false;
                bool hasFocus = false;
                bool isActive = false;
-               bool isHover = false;
+               //bool isHover = false;
                bool mouseRepeat;
                protected bool isVisible = true;
                bool isEnabled = true;
@@ -436,9 +436,9 @@ namespace Crow
                /// <summary>Occurs when this object loose focus</summary>
                public event EventHandler Unfocused;
                /// <summary>Occurs when mouse is over</summary>
-               public event EventHandler Hover;
+               //public event EventHandler Hover;
                /// <summary>Occurs when this control is no longer the Hover one</summary>
-               public event EventHandler UnHover;
+               //public event EventHandler UnHover;
                /// <summary>Occurs when this object loose focus</summary>
                public event EventHandler Enabled;
                /// <summary>Occurs when the enabled state this object is set to false</summary>
@@ -744,7 +744,7 @@ namespace Crow
                /// <summary>
                /// true if this control has the pointer hover
                /// </summary>
-               [XmlIgnore]public virtual bool IsHover {
+               /*[XmlIgnore]public virtual bool IsHover {
                        get { return isHover; }
                        set {
                                if (value == isHover)
@@ -759,7 +759,7 @@ namespace Crow
 
                                NotifyValueChanged ("IsHover", isHover);
                        }
-               }
+               }*/
                /// <summary>
                /// true if holding mouse button down should trigger multiple click events
                /// </summary>
@@ -866,8 +866,12 @@ namespace Crow
 
                                RegisterForLayouting (LayoutingType.Sizing);
 
-                               if (!isVisible)
-                                       unshownPostActions ();
+                               if (!isVisible && IFace.HoverWidget != null) {                                  
+                                       if (IFace.HoverWidget.IsOrIsInside (this)) {
+                                               //IFace.HoverWidget = null;
+                                               IFace.ProcessMouseMove (IFace.Mouse.X, IFace.Mouse.Y);
+                                       }
+                               }
 
                                NotifyValueChanged ("Visible", isVisible);
                        }
@@ -1877,20 +1881,7 @@ namespace Crow
                        #if DEBUG_FOCUS
                        Debug.WriteLine("MouseEnter => " + this.ToString());
                        #endif
-                       MouseEnter.Raise (this, e);
-               }
-               public virtual void onMouseLeave(object sender, MouseMoveEventArgs e)
-               {
-                       #if DEBUG_FOCUS
-                       Debug.WriteLine("MouseLeave => " + this.ToString());
-                       #endif
-                       MouseLeave.Raise (this, e);
-               }
-               public virtual void onHover(object sender, EventArgs e)
-               {
-                       #if DEBUG_FOCUS
-                       Debug.WriteLine("MouseHover => " + this.ToString());
-                       #endif
+
                        if (IFace.DragAndDropOperation != null) {
                                GraphicObject g = this;
                                while (g != null) {
@@ -1905,15 +1896,18 @@ namespace Crow
                                        g = g.focusParent;
                                }
                        }
-                       Hover.Raise (this, e);
+
+                       MouseEnter.Raise (this, e);
                }
-               public virtual void onUnHover(object sender, EventArgs e)
+               public virtual void onMouseLeave(object sender, MouseMoveEventArgs e)
                {
                        #if DEBUG_FOCUS
-                       Debug.WriteLine("MouseUnHover => " + this.ToString());
+                       Debug.WriteLine("MouseLeave => " + this.ToString());
                        #endif
-                       UnHover.Raise (this, e);
+
+                       MouseLeave.Raise (this, e);
                }
+
                #endregion
 
                protected virtual void onFocused(object sender, EventArgs e){
@@ -1981,6 +1975,12 @@ namespace Crow
                /// Checks to handle when widget is removed from the visible graphic tree
                /// </summary>
                void unshownPostActions () {
+                       if (IFace.HoverWidget != null) {
+                               if (IFace.HoverWidget.IsOrIsInside (this)) {
+                                       IFace.HoverWidget = null;
+                                       IFace.ProcessMouseMove (IFace.Mouse.X, IFace.Mouse.Y);
+                               }
+                       }
                        if (IFace.ActiveWidget != null) {
                                if (IFace.ActiveWidget.IsOrIsInside (this))
                                        IFace.ActiveWidget = null;
@@ -1989,12 +1989,6 @@ namespace Crow
                                if (IFace.FocusedWidget.IsOrIsInside (this))
                                        IFace.FocusedWidget = null;
                        }                                       
-                       if (IFace.HoverWidget != null) {
-                               if (IFace.HoverWidget.IsOrIsInside (this)) {
-                                       IFace.HoverWidget = null;
-                                       IFace.ProcessMouseMove (IFace.Mouse.X, IFace.Mouse.Y);
-                               }
-                       }
                }
        }
 }
index 8ddd7a8ecf3b6388b1d70fa46f96db7b5f798b9b..52fdbfef6744488d85ea18a714f549b94a03f881 100644 (file)
@@ -49,6 +49,7 @@ namespace Crow
                int tabOffset;
                bool isSelected;
                Measure tabThickness;
+               Fill selectedBackground = Color.Transparent;
                #endregion
 
                #region TemplatedControl overrides
@@ -115,8 +116,30 @@ namespace Crow
                        set {
                                if (isSelected == value)
                                        return;
+
+                               if (tview != null)
+                                       tview.SelectedTab = tview.Children.IndexOf(this);
+                               
                                isSelected = value;
                                NotifyValueChanged ("IsSelected", isSelected);
+                               RegisterForRedraw ();
+                       }
+               }
+
+               /// <summary>
+               /// background fill of the control, maybe solid color, gradient, image, or svg
+               /// </summary>
+               [DesignCategory ("Appearance")][DefaultValue("DimGrey")]
+               public virtual Fill SelectedBackground {
+                       get { return selectedBackground; }
+                       set {
+                               if (selectedBackground == value)
+                                       return;                         
+                               if (value == null)
+                                       return;
+                               selectedBackground = value;
+                               NotifyValueChanged ("SelectedBackground", selectedBackground);
+                               RegisterForRedraw ();
                        }
                }
                protected override void onDraw (Context gr)
@@ -150,7 +173,11 @@ namespace Crow
                        gr.StrokePreserve ();
                        gr.ClipPreserve ();
 
-                       Background.SetAsSource (gr);
+                       if (IsSelected)
+                               SelectedBackground.SetAsSource (gr, ClientRectangle);
+                       else
+                               Background.SetAsSource (gr, ClientRectangle);
+
                        gr.Fill ();
 
                        base.onDraw (gr);
@@ -162,14 +189,8 @@ namespace Crow
                int dragThreshold = 16;
                int dis = 128;
                internal TabView savedParent = null;
-               public override Fill Background {
-                       get {
-                               return base.Background;
-                       }
-                       set {
-                               base.Background = value;
-                       }
-               }
+
+
                void makeFloating (TabView tv) {                        
                        lock (IFace.UpdateMutex) {                              
                                ImageSurface di = new ImageSurface (Format.Argb32, dis, dis);
@@ -252,7 +273,7 @@ namespace Crow
                public override void onMouseUp (object sender, MouseButtonEventArgs e)
                {
                        base.onMouseUp (sender, e);
-                       tview.UpdateLayout (LayoutingType.ArrangeChildren);
+                       tview?.UpdateLayout (LayoutingType.ArrangeChildren);
                }
                public override void onMouseMove (object sender, MouseMoveEventArgs e)
                {
index 73681b9de7fe0c3f12d930157c6ed2f18c22465a..4d236dab2c66b1098fdd21ff513ffe0df63bd72c 100644 (file)
@@ -148,7 +148,7 @@ namespace Crow
                                : items.Children;
                        }
                }
-               [XmlAttributeAttribute][DefaultValue(-1)]public virtual int SelectedIndex{
+               [DefaultValue(-1)]public virtual int SelectedIndex{
                        get { return _selectedIndex; }
                        set {
                                if (value == _selectedIndex)
index 2c3f817f6f11b0117583771967c140f2a1bc6bf2..12a99fb3619d756c701cc11bc10c21b893b194ed 100644 (file)
@@ -67,13 +67,13 @@ namespace Crow
                        GraphicObject tmp = sender as GraphicObject;
                        if (!tmp.HasFocus)
                                return;
-                       if (selectedItemContainer != null) {
+                       /*if (selectedItemContainer != null) {
                                selectedItemContainer.Foreground = Color.Transparent;
                                selectedItemContainer.Background = Color.Transparent;
-                       }
+                       }*/
                        selectedItemContainer = tmp;
-                       selectedItemContainer.Foreground = SelectionForeground;
-                       selectedItemContainer.Background = SelectionBackground;
+                       //selectedItemContainer.Foreground = SelectionForeground;
+                       //selectedItemContainer.Background = SelectionBackground;
                        NotifyValueChanged ("SelectedItem", SelectedItem);
                        raiseSelectedItemChanged ();
                }
index f2d6a1ce9e3cd34a0c9167f31f336c2318f98bdd..9a11fa18100d76d7f572e042ec74cd7eddea2985 100644 (file)
@@ -129,8 +129,8 @@ namespace Crow
                        Keyboard.KeyUp += Keyboard_KeyUp;
                        Keyboard.KeyPress += Keyboard_KeyPress;
 
-                       initTooltip ();
-                       initContextMenus ();
+                       /*initTooltip ();
+                       initContextMenus ();*/
 
                        running = true;
 
@@ -605,14 +605,15 @@ namespace Crow
                                if (_hoverWidget == value)
                                        return;
 
-                               if (_hoverWidget != null)
-                                       _hoverWidget.IsHover = false;
+                               //if (_hoverWidget != null)
+                               //      _hoverWidget.IsHover = false;
 
                                _hoverWidget = value;
+
                                #if DEBUG_FOCUS
                                NotifyValueChanged("HoverWidget", _hoverWidget);
                                #endif
-
+                               /*
                                if (_hoverWidget != null)
                                {
                                        _hoverWidget.IsHover = true;
@@ -623,6 +624,7 @@ namespace Crow
                                        #else
                                }
                                        #endif
+                                       */
                        }
                }
                /// <summary>Widget has the keyboard or mouse focus</summary>
@@ -860,10 +862,11 @@ namespace Crow
                        if (newW != null) {
                                while (ptr < GraphicTree.Count) {
                                        Window w = GraphicTree [ptr] as Window;
-                                       if (w != null) {
-                                               if (newW.AlwaysOnTop || !w.AlwaysOnTop)
-                                                       break;
-                                       }
+                                       if (w == null)
+                                               break;
+                                       if (newW.AlwaysOnTop || !w.AlwaysOnTop)
+                                               break;
+                                       
                                        ptr++;
                                }
                        }
@@ -1001,10 +1004,10 @@ namespace Crow
                /// <returns>true if mouse is in the interface</returns>
                public virtual bool ProcessMouseMove(int x, int y)
                {
-                       if (armedClickSender != null) {
-                               armedClickSender.onMouseClick (armedClickSender, armedClickEvtArgs);
+                       /*if (armedClickSender != null) {
+                               //armedClickSender.onMouseClick (armedClickSender, armedClickEvtArgs);
                                armedClickSender = null;
-                       }
+                       }*/
                        int deltaX = x - Mouse.X;
                        int deltaY = y - Mouse.Y;
                        Mouse.X = x;
@@ -1130,7 +1133,15 @@ namespace Crow
                        if (HoverWidget == null)
                                return false;
 
-                       if (HoverWidget == armedClickSender) {
+                       GraphicObject hoverFocused = HoverWidget;
+                       while (!hoverFocused.Focusable) {
+                               hoverFocused = hoverFocused.focusParent;
+                               if (hoverFocused == null) {
+                                       hoverFocused = HoverWidget;
+                                       break;
+                               }
+                       }
+                       if (hoverFocused == armedClickSender) {
                                if (clickTimer.ElapsedMilliseconds < Interface.DoubleClick) {
                                        armedClickSender.onMouseDoubleClick (armedClickSender, e);
                                        armedClickSender = null;
diff --git a/src/Mono.Cairo/Color.cs b/src/Mono.Cairo/Color.cs
deleted file mode 100644 (file)
index 030089e..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Duncan Mak (duncan@ximian.com)
-//   Miguel de Icaza (miguel@novell.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-namespace Cairo {
-
-       public struct Color
-       {
-               public Color(double r, double g, double b) : this (r, g, b, 1.0)
-               {
-               }
-
-               public Color(double r, double g, double b, double a)
-               {
-                       this.r = r;
-                       this.g = g;
-                       this.b = b;
-                       this.a = a;
-               }
-
-               double r, g, b, a;
-
-               public double R {
-                       get { return r; }
-                       set { r = value; }
-               }
-
-               public double G {
-                       get { return g; }
-                       set { g = value; }
-               }
-
-               public double B {
-                       get { return b; }
-                       set { b = value; }
-               }
-
-               public double A {
-                       get { return a; }
-                       set { a = value; }
-               }
-       }
-}
index 264774dd49922bdbe6684e837521407ec7601d51..74c2e444b6f2465835f1911fa05259b212634c3e 100644 (file)
@@ -38,8 +38,9 @@ using System;
 using System.Runtime.InteropServices;
 using System.Text;
 using Cairo;
+using Color = Crow.Color;
 
-namespace Cairo {
+namespace Cairo {      
 
        [Obsolete ("Renamed Cairo.Context per suggestion from cairo binding guidelines.")]
        public class Graphics : Context {
@@ -161,20 +162,6 @@ namespace Cairo {
                        }
                }
 
-               [Obsolete ("Use SetSourceColor method")]
-               public Color Color {
-                       set {
-                               SetSourceColor (value);
-                       }
-               }
-
-               [Obsolete ("Use SetSourceRGBA method")]
-               public Cairo.Color ColorRgb {
-                       set {
-                               Color = new Color (value.R, value.G, value.B);
-                       }
-               }
-
                public double Tolerance {
                        get {
                                return NativeMethods.cairo_get_tolerance (handle);
@@ -870,13 +857,9 @@ namespace Cairo {
 
                public void ShowText(string str)
                {
-                       NativeMethods.cairo_show_text (handle, TerminateUtf8(str));
+                       NativeMethods.cairo_show_text (handle, str);
                }
 
-               public void ShowText(byte[] utf8)
-               {
-                       NativeMethods.cairo_show_text (handle, TerminateUtf8(utf8));
-               }
 
                public void TextPath(string str)
                {
@@ -891,16 +874,10 @@ namespace Cairo {
                public TextExtents TextExtents(string s)
                {
                        TextExtents extents;
-                       NativeMethods.cairo_text_extents (handle, TerminateUtf8(s), out extents);
+                       NativeMethods.cairo_text_extents (handle, s, out extents);
                        return extents;
                }
 
-               public TextExtents TextExtents(byte[] utf8)
-               {
-                       TextExtents extents;
-                       NativeMethods.cairo_text_extents (handle, TerminateUtf8(utf8), out extents);
-                       return extents;
-               }
 
                public TextExtents GlyphExtents (Glyph[] glyphs)
                {
index 0fb617e421fa7c092508982d140ad13b63197b72..c7bc53c6f958e2bbf691e335506e7b6bdad18e08 100644 (file)
@@ -28,7 +28,7 @@
 //
 
 using System;
-
+using Color = Crow.Color;
 namespace Cairo {
 
        public class Gradient : Pattern
diff --git a/src/Mono.Cairo/NativeMethods-internal.cs b/src/Mono.Cairo/NativeMethods-internal.cs
new file mode 100644 (file)
index 0000000..6e6d507
--- /dev/null
@@ -0,0 +1,1026 @@
+//
+// Cairo.cs - a simplistic binding of the Cairo API to C#.
+//
+// Authors: Duncan Mak (duncan@ximian.com)
+//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
+//          John Luke (john.luke@gmail.com)
+//          Alp Toker (alp@atoker.com)
+//
+// (C) Ximian, Inc. 2003
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005 John Luke
+// Copyright (C) 2006 Alp Toker
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+namespace Cairo
+{
+       // sort the functions like in the following page so it is easier to find what is missing
+       // http://cairographics.org/manual/index-all.html
+
+       public static class NativeMethods
+       {
+               #if MONOTOUCH
+               const string cairo = "__Internal";
+               #else
+               const string cairo = "libcairo-2.dll";
+               #endif
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern void cairo_append_path (IntPtr cr, Path path);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_arc (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_arc_negative (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
+
+               //              [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //              public static extern IntPtr cairo_atsui_font_face_create_for_atsu_font_id (IntPtr font_id);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_clip (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_clip_preserve (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_clip_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_close_path (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_copy_page (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_copy_path (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_copy_path_flat (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_append_path (IntPtr cr, IntPtr path);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_create (IntPtr target);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_curve_to (IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_debug_reset_static_data ();
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_destroy (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_device_to_user (IntPtr cr, ref double x, ref double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_device_to_user_distance (IntPtr cr, ref double dx, ref double dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_fill (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_fill_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_fill_preserve (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_extents (IntPtr cr, out FontExtents extents);
+
+               #region FontFace
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_face_destroy (IntPtr font_face);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern FontType cairo_font_face_get_type (IntPtr font_face);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern void cairo_font_face_get_user_data (IntPtr font_face);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern void cairo_font_face_set_user_data (IntPtr font_face);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_font_face_reference (IntPtr font_face);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_font_face_status (IntPtr font_face);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern uint cairo_font_face_get_reference_count (IntPtr surface);
+               #endregion
+
+               #region FontOptions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_font_options_copy (IntPtr original);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_font_options_create ();
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_destroy (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern bool cairo_font_options_equal (IntPtr options, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Antialias cairo_font_options_get_antialias (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern HintMetrics cairo_font_options_get_hint_metrics (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern HintStyle cairo_font_options_get_hint_style (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern SubpixelOrder cairo_font_options_get_subpixel_order (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern long cairo_font_options_hash (IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_merge (IntPtr options, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_set_antialias (IntPtr options, Antialias aa);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_set_hint_metrics (IntPtr options, HintMetrics metrics);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_set_hint_style (IntPtr options, HintStyle style);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_font_options_set_subpixel_order (IntPtr options, SubpixelOrder order);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_font_options_status (IntPtr options);
+               #endregion
+
+               #region Freetype / FontConfig
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_ft_font_face_create_for_ft_face (IntPtr face, int load_flags);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_ft_font_face_create_for_pattern (IntPtr fc_pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ft_font_options_substitute (FontOptions options, IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_ft_scaled_font_lock_face (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ft_scaled_font_unlock_face (IntPtr scaled_font);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Antialias cairo_get_antialias (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_get_current_point (IntPtr cr, out double x, out double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern FillRule cairo_get_fill_rule (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_get_font_face (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_get_font_matrix (IntPtr cr, out Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_get_font_options (IntPtr cr, IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_get_group_target (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern LineCap cairo_get_line_cap (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern LineJoin cairo_get_line_join (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern double cairo_get_line_width (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_get_matrix (IntPtr cr, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern double cairo_get_miter_limit (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Operator cairo_get_operator (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern uint cairo_get_reference_count (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_get_source (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_get_target (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern double cairo_get_tolerance (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_glitz_surface_create (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_glyph_extents (IntPtr cr, IntPtr glyphs, int num_glyphs, out TextExtents extents);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_glyph_path (IntPtr cr, IntPtr glyphs, int num_glyphs);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               [return: MarshalAs (UnmanagedType.U1)]
+               public static extern bool cairo_has_current_point (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_identity_matrix (IntPtr cr);
+
+               #region Image Surface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_image_surface_create (Cairo.Format format, int width, int height);
+
+               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
+               public static extern IntPtr cairo_image_surface_create_for_data (byte[] data, Cairo.Format format, int width, int height, int stride);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_image_surface_create_for_data (IntPtr data, Cairo.Format format, int width, int height, int stride);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_image_surface_create_from_png  (string filename);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern IntPtr cairo_image_surface_create_from_png_stream  (string filename);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_image_surface_get_data (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Format cairo_image_surface_get_format (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_image_surface_get_height (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_image_surface_get_stride (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_image_surface_get_width  (IntPtr surface);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               [return: MarshalAs (UnmanagedType.U1)]
+               public static extern bool cairo_in_clip (IntPtr cr, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               [return: MarshalAs (UnmanagedType.U1)]
+               public static extern bool cairo_in_fill (IntPtr cr, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               [return: MarshalAs (UnmanagedType.U1)]
+               public static extern bool cairo_in_stroke (IntPtr cr, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_line_to (IntPtr cr, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_mask (IntPtr cr, IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_mask_surface (IntPtr cr, IntPtr surface, double x, double y);
+
+               #region Matrix
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_init (Matrix matrix, double xx, double yx, double xy, double yy, double x0, double y0);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_init_identity (Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_init_rotate (Matrix matrix, double radians);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_init_scale (Matrix matrix, double sx, double sy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_init_translate (Matrix matrix, double tx, double ty);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_matrix_invert (Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_multiply (Matrix result, Matrix a, Matrix b);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_scale (Matrix matrix, double sx, double sy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_rotate (Matrix matrix, double radians);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_transform_distance (Matrix matrix, ref double dx, ref double dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_transform_point (Matrix matrix, ref double x, ref double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_matrix_translate (Matrix matrix, double tx, double ty);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_move_to (IntPtr cr, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_new_path (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_new_sub_path (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_paint (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_paint_with_alpha (IntPtr cr, double alpha);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_path_destroy (IntPtr path);
+
+               #region Pattern
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_add_color_stop_rgb (IntPtr pattern, double offset, double red, double green, double blue);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_add_color_stop_rgba (IntPtr pattern, double offset, double red, double green, double blue, double alpha);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_color_stop_count (IntPtr pattern, out int count);
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_color_stop_rgba (IntPtr pattern, int index, out double offset, out double red, out double green, out double blue, out double alpha);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_create_for_surface (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_surface (IntPtr pattern, out IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_create_linear (double x0, double y0, double x1, double y1);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_linear_points (IntPtr pattern, out double x0, out double y0, out double x1, out double y1);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_radial_circles (IntPtr pattern, out double x0, out double y0, out double r0, out double x1, out double y1, out double r1);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_create_rgb (double r, double g, double b);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_create_rgba (double r, double g, double b, double a);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_get_rgba (IntPtr pattern, out double red, out double green, out double blue, out double alpha);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_destroy (IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Extend cairo_pattern_get_extend (IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Filter cairo_pattern_get_filter (IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_get_matrix (IntPtr pattern, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern PatternType cairo_pattern_get_type (IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pattern_reference (IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_set_extend (IntPtr pattern, Extend extend);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_set_filter (IntPtr pattern, Filter filter);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pattern_set_matrix (IntPtr pattern, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_pattern_status (IntPtr pattern);
+               #endregion
+
+               #region PdfSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pdf_surface_create (string filename, double width, double height);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern IntPtr cairo_pdf_surface_create_for_stream (string filename, double width, double height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pdf_surface_set_size (IntPtr surface, double x, double y);
+               #endregion
+
+               #region PostscriptSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_ps_surface_create (string filename, double width, double height);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern IntPtr cairo_ps_surface_create_for_stream (string filename, double width, double height);
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ps_surface_dsc_begin_page_setup (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ps_surface_dsc_begin_setup (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ps_surface_dsc_comment (IntPtr surface, string comment);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_ps_surface_set_size (IntPtr surface, double x, double y);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_pop_group (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_pop_group_to_source (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_push_group (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_push_group_with_content (IntPtr cr, Content content);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_quartz_surface_create (IntPtr context, bool flipped, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_reference (IntPtr cr);
+
+               #region Regions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern bool cairo_region_contains_point (IntPtr region, int x, int y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern RegionOverlap cairo_region_contains_rectangle (IntPtr region, ref Crow.Rectangle rectangle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_region_copy (IntPtr original);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_region_create ();
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_region_create_rectangle (ref Crow.Rectangle rect);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_region_create_rectangles (IntPtr rects, int count);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_region_destroy (IntPtr region);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern bool cairo_region_equal (IntPtr a, IntPtr b);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_region_get_extents (IntPtr region, out Crow.Rectangle extents);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_region_get_rectangle (IntPtr region, int nth, out Crow.Rectangle rectangle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_intersect (IntPtr dst, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_intersect_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern bool cairo_region_is_empty (IntPtr region);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_region_num_rectangles (IntPtr region);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_region_reference (IntPtr region);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_status (IntPtr region);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_subtract (IntPtr dst, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_subtract_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_region_translate (IntPtr region, int dx, int dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_union (IntPtr dst, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_union_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_xor (IntPtr dst, IntPtr other);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_region_xor_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rel_curve_to (IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_reset_clip (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_restore (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rotate (IntPtr cr, double angle);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_save (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_scale (IntPtr cr, double sx, double sy);
+
+               #region ScaledFont
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_scaled_font_create (IntPtr fontFace, Matrix matrix, Matrix ctm, IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_scaled_font_destroy (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_scaled_font_extents (IntPtr scaled_font, out FontExtents extents);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_scaled_font_get_ctm (IntPtr scaled_font, out Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_scaled_font_get_font_face (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_scaled_font_get_font_matrix (IntPtr scaled_font, out Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_scaled_font_get_font_options (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern FontType cairo_scaled_font_get_type (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_scaled_font_glyph_extents (IntPtr scaled_font, IntPtr glyphs, int num_glyphs, out TextExtents extents);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_scaled_font_reference (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_scaled_font_status (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_scaled_font (IntPtr cr, IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_get_scaled_font (IntPtr cr);
+
+               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_scaled_font_text_extents (IntPtr scaled_font, byte[] utf8, out TextExtents extents);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_select_font_face (IntPtr cr, string family, FontSlant slant, FontWeight weight);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_antialias (IntPtr cr, Antialias antialias);
+
+               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_get_dash (IntPtr cr, IntPtr dashes, out double offset);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_get_dash_count (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_fill_rule (IntPtr cr, Cairo.FillRule fill_rule);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_font_face (IntPtr cr, IntPtr fontFace);
+
+               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_set_font_matrix (IntPtr cr, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_font_options (IntPtr cr, IntPtr options);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_font_size (IntPtr cr, double size);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_line_width (IntPtr cr, double width);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_matrix (IntPtr cr, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_miter_limit (IntPtr cr, double limit);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_operator (IntPtr cr, Cairo.Operator op);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_source (IntPtr cr, IntPtr pattern);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_source_rgb (IntPtr cr, double red, double green, double blue);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_source_rgba (IntPtr cr, double red, double green, double blue, double alpha);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_source_surface (IntPtr cr, IntPtr surface, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_set_tolerance (IntPtr cr, double tolerance);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_show_glyphs (IntPtr ct, IntPtr glyphs, int num_glyphs);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_show_page (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_show_text (IntPtr cr, string str);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_status (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_status_to_string (Status status);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_stroke (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_stroke_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_stroke_preserve (IntPtr cr);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_rectangle_list_destroy (IntPtr rectangle_list);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_copy_clip_rectangle_list (IntPtr cr);
+
+               #region Surface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_surface_create_similar (IntPtr surface, Cairo.Content content, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_destroy (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_finish (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_flush (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Content cairo_surface_get_content (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_get_device_offset (IntPtr surface, out double x, out double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_get_font_options (IntPtr surface, IntPtr FontOptions);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern uint cairo_surface_get_reference_count (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern SurfaceType cairo_surface_get_type (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_mark_dirty (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_mark_dirty_rectangle (IntPtr surface, int x, int y, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_surface_reference (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_set_device_offset (IntPtr surface, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_set_fallback_resolution (IntPtr surface, double x, double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_surface_status (IntPtr surface);
+               #endregion
+
+               #region SVG surface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_surface_write_to_png (IntPtr surface, string filename);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern void cairo_surface_write_to_png_stream (IntPtr surface, WriteFunc writeFunc);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_svg_surface_create (string fileName, double width, double height);
+
+               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               //public static extern IntPtr cairo_svg_surface_create_for_stream (double width, double height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_svg_surface_restrict_to_version (IntPtr surface, SvgVersion version);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_text_extents (IntPtr cr, string txt, out TextExtents extents);
+
+               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
+               public static extern void cairo_text_path (IntPtr ct, byte[] utf8);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_transform (IntPtr cr, Matrix matrix);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_translate (IntPtr cr, double tx, double ty);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_user_to_device (IntPtr cr, ref double x, ref double y);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_user_to_device_distance (IntPtr cr, ref double dx, ref double dy);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_version ();
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_version_string ();
+
+               #region DirectFBSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_directfb_surface_create (IntPtr dfb, IntPtr surface);
+               #endregion
+
+               #region win32 fonts
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_win32_font_face_create_for_logfontw (IntPtr logfontw);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_win32_scaled_font_done_font (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern double cairo_win32_scaled_font_get_metrics_factor (IntPtr scaled_font);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_win32_scaled_font_select_font (IntPtr scaled_font, IntPtr hdc);
+               #endregion
+
+               #region win32 surface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_win32_surface_create (IntPtr hdc);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_win32_surface_create_with_ddb (IntPtr hdc, Format format, int width, int height);
+               #endregion
+
+               #region XcbSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xcb_surface_create (IntPtr connection, uint drawable, IntPtr visual, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xcb_surface_create_for_bitmap (IntPtr connection, uint bitmap, IntPtr screen, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_xcb_surface_set_size (IntPtr surface, int width, int height);
+               #endregion
+
+               #region XlibSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_create (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_create_for_bitmap (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_xlib_surface_get_depth (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_get_display (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_get_drawable (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_xlib_surface_get_height (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_get_screen (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_xlib_surface_get_visual (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_xlib_surface_get_width (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_xlib_surface_set_drawable (IntPtr surface, IntPtr drawable, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_xlib_surface_set_size (IntPtr surface, int width, int height);
+               #endregion
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_gl_device_set_thread_aware(IntPtr device, int value);
+
+               #region GLSurface
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_gl_surface_create (IntPtr device, uint content, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_gl_surface_create_for_texture (IntPtr device, uint content, uint tex, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_gl_surface_set_size (IntPtr surface, int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_gl_surface_get_width (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_gl_surface_get_height (IntPtr surface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_gl_surface_swapbuffers (IntPtr surf);
+               #endregion
+
+               #region GLX Functions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_glx_device_create (IntPtr dpy, IntPtr gl_ctx);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_glx_device_get_display (IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_glx_device_get_context (IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_gl_surface_create_for_window (IntPtr device, IntPtr window, int width, int height);
+               #endregion
+
+               #region WGL Fucntions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_wgl_device_create (IntPtr hglrc);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_wgl_device_get_context (IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_gl_surface_create_for_dc (IntPtr device, IntPtr hdc, int width, int height);
+               #endregion
+
+               #region EGL Functions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_egl_device_create (IntPtr dpy, IntPtr gl_ctx);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_gl_surface_create_for_egl (IntPtr device, IntPtr eglSurface, int width, int height);
+               #endregion
+
+               #region DRM Functions
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_device_get (IntPtr udev_device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_device_get_for_fd (int fd);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_device_default ();
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_drm_device_get_fd (IntPtr cairo_device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern  void cairo_drm_device_throttle (IntPtr cairo_device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_create (IntPtr cairo_device, Format format,       int width, int height);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_create_for_name (IntPtr cairo_device, uint name, Format format,   int width, int height, int stride);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_create_from_cacheable_image (IntPtr cairo_device, IntPtr imageSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_drm_surface_enable_scan_out (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_get_handle (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_get_name (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Format cairo_drm_surface_get_format (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_drm_surface_get_width (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_drm_surface_get_height (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern int cairo_drm_surface_get_stride (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_drm_surface_map_to_image (IntPtr drmSurface);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void       cairo_drm_surface_unmap (IntPtr drmSurface,     IntPtr imageSurface);
+               #endregion
+
+               #region Device
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_device_acquire(IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_device_destroy (IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern IntPtr cairo_device_reference (IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void cairo_device_release(IntPtr device);
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern Status cairo_device_status(IntPtr device);
+               #endregion
+
+
+
+               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
+               public static extern void crow_cairo_region_clear(IntPtr ctx, IntPtr reg);
+
+       }
+}
\ No newline at end of file
index 535013699587ee9d5c7a61f9914d3d7b19966f32..24384fe7da1777a2e564433f819cf9e525476ff3 100644 (file)
@@ -752,7 +752,7 @@ namespace Cairo
                internal static extern void cairo_show_page (IntPtr cr);
 
                [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_show_text (IntPtr cr, byte[] utf8);
+               internal static extern void cairo_show_text (IntPtr cr, string text);
 
                [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
                internal static extern Status cairo_status (IntPtr cr);
@@ -840,7 +840,7 @@ namespace Cairo
                #endregion
 
                [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_text_extents (IntPtr cr, byte[] utf8, out TextExtents extents);
+               internal static extern void cairo_text_extents (IntPtr cr, string text, out TextExtents extents);
 
                [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
                internal static extern void cairo_text_path (IntPtr ct, byte[] utf8);
diff --git a/src/Mono.Cairo/Rectangle.cs b/src/Mono.Cairo/Rectangle.cs
deleted file mode 100644 (file)
index 6766aa4..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// Mono.Cairo.Rectangle.cs
-//
-// Author:
-//   John Luke (john.luke@gmail.com)
-//
-// (C) John Luke 2005.
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace Cairo
-{
-//     public struct Rectangle
-//     {
-//             double x;
-//             double y;
-//             double width;
-//             double height;
-//             
-//             public Rectangle (double x, double y, double width, double height)
-//             {
-//                     this.x = x;
-//                     this.y = y;
-//                     this.width = width;
-//                     this.height = height;
-//             }
-//             
-//             public Rectangle (Point point, double width, double height)
-//             {
-//                     x = point.X;
-//                     y = point.Y;
-//                     this.width = width;
-//                     this.height = height;
-//             }
-//             
-//             public double X {
-//                     get { return x; }
-//             }
-//             
-//             public double Y {
-//                     get { return y; }
-//             }
-//             
-//             public double Width {
-//                     get { return width; }
-//             }
-//             
-//             public double Height {
-//                     get { return height; }
-//             }
-//             
-//             public override bool Equals (object obj)
-//             {
-//                     if (obj is Rectangle)
-//                             return this == (Rectangle)obj;
-//                     return false;
-//             }
-//             
-//             public override int GetHashCode ()
-//             {
-//                     return (int) (x + y + width + height);
-//             }
-//
-//             public override string ToString ()
-//             {
-//                     return String.Format ("x:{0} y:{1} w:{2} h:{3}", x, y, width, height);
-//             }
-//             
-//             public static bool operator == (Rectangle rectangle, Rectangle other)
-//             {
-//                     return rectangle.X == other.X && rectangle.Y == other.Y && rectangle.Width == other.Width && rectangle.Height == other.Height;
-//             }
-//             
-//             public static bool operator != (Rectangle rectangle, Rectangle other)
-//             {
-//                     return !(rectangle == other);
-//             }
-//     }
-}
index 875b3fbf155d9ff19cfe56bda148a7b96f058c21..37864e5b8f1c40960b7d813c94b39ff969be4c52 100644 (file)
@@ -28,7 +28,7 @@
 //
 
 using System;
-
+using Color = Crow.Color;
 namespace Cairo {
 
        public class SolidPattern : Pattern
index 5b6ca360ec7a4f3560a73b05e79516fb1fa563b7..36a29f962e37d9da2e9887bd662e93d64bf7b62c 100644 (file)
@@ -289,7 +289,7 @@ namespace Crow
                }
                void Buffer_PositionChanged (object sender, EventArgs e)
                {
-                       Console.WriteLine ("Position changes: ({0},{1})", buffer.CurrentLine, buffer.CurrentColumn);
+                       //Console.WriteLine ("Position changes: ({0},{1})", buffer.CurrentLine, buffer.CurrentColumn);
                        int cc = buffer.CurrentTabulatedColumn;
 
                        if (cc > visibleColumns + ScrollX) {