]> O.S.I.I.S - jp/crow.git/commitdiff
unbox value type in emitGetSubData, FileDialog enabled for folder only, minimum size... crowIde
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 31 Dec 2020 15:37:46 +0000 (16:37 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Thu, 31 Dec 2020 15:37:46 +0000 (16:37 +0100)
Crow/Default.style
Crow/Templates/Button.template
Crow/Templates/FileDialog.template
Crow/src/Command.cs
Crow/src/ItemTemplate.cs
Crow/src/Widgets/FileDialog.cs
Crow/src/styling/StyleReader.cs

index ae09ec1c83d8d152f870c26863196336e4aa5a80..dff927ff6f32a68dd81b32a3cbc29be1a36889ab 100644 (file)
@@ -67,6 +67,7 @@ Wrapper {
 }
 Button {
        Caption = "Button";
+       MinimumSize = "50,20";
        Width = "Fit";
 }
 Label {
index 14b14a2f80be8828870d772b7b752b72339b5399..c46da8c6b881bfdc4fbd76a69dd72d3c62215561 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<Border Background="{./Background}" MinimumSize="50,20" Name="Content"
+<Border Background="{./Background}" Name="Content"
        Foreground="Transparent" CornerRadius="{../CornerRadius}" BorderWidth="1"
        MouseEnter="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black};{caption.Foreground=White}"
        MouseLeave="{Foreground=Transparent};{caption.Foreground=LightGrey}"
index 5140aae7813b4c4778ee0625ad5c663e350592f2..3967d9d8dc3956cf6c562ebac89fbf138bbeca64 100644 (file)
@@ -22,7 +22,7 @@
                                        <TextBox Style="TxtInFileDialog" Text="{²./CurrentDirectory}"/>
                                </HorizontalStack>
                                <DirectoryView ShowHidden="{²../cbShowHidden.IsChecked}" FileMask="{²../txtFileMask.Text}" ShowFiles="{²../cbShowFiles.IsChecked}" Name="fv" CurrentDirectory="{./CurrentDirectory}" SelectedItemChanged="./onFVSelectedItemChanged"
-                                               Width="100%" Margin="0" MouseDoubleClick="./onFileSelect">
+                                               Width="100%" Margin="0" MouseDoubleClick="./onFileSelectDblClick">
                                        <Template>
                                                <ListBox ItemTemplate="#Crow.FileItems.template" Name="fileView" Data="{./FileSystemEntries}"
                                                        SelectedItemChanged="./onSelectedItemChanged">
index caa8a3b0ea5be5fc24773b8a0e4e324aceba68a6..b14aff75ae6c09283faa691773a38fdf37d81575 100644 (file)
@@ -22,7 +22,6 @@ namespace Crow {
                                        return;
                                caption = value;
                                NotifyValueChanged ("Caption", caption);
-
                        }
                }
                /// <summary>
index e16962560fee5269a49a3f2182b938ee5ae8a916..ea56f5dab5d4786dcb3883fbe8bcc614a24aea08 100644 (file)
@@ -169,7 +169,7 @@ namespace Crow
                        //get the dataSource of the sender
                        il.Emit (OpCodes.Ldarg_0);//push root TemplatedGroup into the stack
                        il.Emit (OpCodes.Ldarg_1);//load sender node of expand
-                       il.Emit (OpCodes.Callvirt, CompilerServices.miGetDataSource);
+                       il.Emit (OpCodes.Callvirt, CompilerServices.miGetDataSource);                   
 
                        if (fetchMethodName != "self") {//special keyword self allows the use of recurent list<<<
                                if (dataType == null) {
@@ -178,8 +178,9 @@ namespace Crow
 
                                        il.Emit (OpCodes.Ldstr, fetchMethodName);
                                        il.Emit (OpCodes.Call, CompilerServices.miGetDataTypeAndFetch);
-                               }else
-                                       emitGetSubData(il, dataType);                   
+                               } else {
+                                       emitGetSubData (il, dataType);
+                               }
                        }
                        //set 'return' from the fetch method as 'data' of the list
                        //il.Emit (OpCodes.Callvirt, piData.GetSetMethod ());
@@ -228,6 +229,8 @@ namespace Crow
                }
                //data is on the stack
                void emitGetSubData(ILGenerator il, Type dataType){
+                       if (dataType.IsValueType)
+                               il.Emit (OpCodes.Unbox_Any, dataType);
                        MethodInfo miGetDatas = dataType.GetMethod (fetchMethodName, new Type[] {});
                        if (miGetDatas == null)
                                miGetDatas = CompilerServices.SearchExtMethod (dataType, fetchMethodName);
index 8c58e632cf3efabff8adae788f4c682915514816..bc6b46c037d4c5c12aa7d742463ce3999ed7dd9e 100644 (file)
@@ -111,13 +111,19 @@ namespace Crow
                                return;
                        CurrentDirectory = Directory.GetParent(CurrentDirectory).FullName;
                }
-               void onFileSelect(object sender, MouseButtonEventArgs e){
-                       if (string.IsNullOrEmpty (SelectedFile))
-                               CurrentDirectory = SelectedDirectory;
-                       else {
-                               OkClicked.Raise (this, null);
-                               IFace.DeleteWidget (this);
+               void onFileSelectDblClick (object sender, MouseButtonEventArgs e) {
+                       CurrentDirectory = SelectedDirectory;
+               }
+
+               void onFileSelect (object sender, MouseButtonEventArgs e){
+                       if (ShowFiles) {
+                               if (string.IsNullOrEmpty (SelectedFile)) {
+                                       CurrentDirectory = SelectedDirectory;
+                                       return;
+                               }                                                                       
                        }
+                       OkClicked.Raise (this, null);
+                       IFace.DeleteWidget (this);
                }
                void onCancel(object sender, MouseButtonEventArgs e){
                        IFace.DeleteWidget (this);
index 84839890a5826234d16eb83addcd2106ef037ead..f5f141e57cea1d2596601ad942417cdddd881e05 100644 (file)
@@ -85,7 +85,7 @@ namespace Crow
                                        break;
                                case ',':
                                        ReadChar ();
-                                       if (!(curState == States.classNames) || string.IsNullOrEmpty (token))
+                                       if (curState != States.classNames || string.IsNullOrEmpty (token))
                                                throw new ParserException (line, column, "Unexpected char ','", resId);
                                        targetsClasses.Add (token);
                                        token = "";