<None Include="ui\icons\search.svg" />
<None Include="ui\icons\text-file.svg" />
<None Include="ui\icons\text-label.svg" />
- <None Include="ui\icons\tools.svg" />
<None Include="ui\icons\zoom-in.svg" />
<None Include="ui\icons\zoom-out.svg" />
<None Include="ui\icons\basic_floppydisk.svg" />
<EmbeddedResource Include="ui\icons\inbox.svg" />
<EmbeddedResource Include="ui\icons\outbox.svg" />
<EmbeddedResource Include="ui\saveFile.crow" />
+ <EmbeddedResource Include="ui\EditorOptions.crow" />
+ <EmbeddedResource Include="ui\icons\tools.svg" />
</ItemGroup>
</Project>
{
public class CrowEdit : CrowWindow
{
- public Command CMDNew, CMDOpen, CMDSave, CMDSaveAs, CMDQuit, CMDUndo, CMDRedo, CMDCut, CMDCopy, CMDPaste, CMDHelp, CMDAbout;
+ public Command CMDNew, CMDOpen, CMDSave, CMDSaveAs, CMDQuit, CMDUndo, CMDRedo, CMDCut, CMDCopy, CMDPaste, CMDHelp, CMDAbout, CMDOptions;
string _curDir = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
string _curFilePath = "unamed.txt";
CMDCopy = new Command(new Action(() => Quit (null, null))) { Caption = "Copy", Icon = new SvgPicture("#CrowEdit.ui.icons.copy-file.svg"), CanExecute = false};
CMDPaste = new Command(new Action(() => Quit (null, null))) { Caption = "Paste", Icon = new SvgPicture("#CrowEdit.ui.icons.paste-on-document.svg"), CanExecute = false};
CMDHelp = new Command(new Action(() => System.Diagnostics.Debug.WriteLine("help"))) { Caption = "Help", Icon = new SvgPicture("#CrowEdit.ui.icons.question.svg")};
+ CMDOptions = new Command(new Action(() => openOptionsDialog())) { Caption = "Editor Options", Icon = new SvgPicture("#CrowEdit.ui.icons.tools.svg")};
}
void newFile(){
if (redoStack.Count == 0)
CMDRedo.CanExecute = false;
}
+ void openOptionsDialog(){
+ GraphicObject ed = this.FindByName("editor");
+ Load ("#CrowEdit.ui.EditorOptions.crow").DataSource = ed;
+ }
void openFileDialog(){
Load ("#CrowEdit.ui.openFile.crow").DataSource = this;
}
this.ValueChanged += CrowEdit_ValueChanged;
initCommands ();
-
Load ("#CrowEdit.ui.main.crow").DataSource = this;
NotifyValueChanged ("CurFileFullPath", CurFileFullPath);
}
}
#endregion
- const int leftMarginGap = 2;//gap between items in margin and text
+ const int leftMarginGap = 5;//gap between items in margin and text
const int foldSize = 9;//folding rectangles size
#region private and protected fields
void measureLeftMargin () {
leftMargin = 0;
if (PrintLineNumbers)
- leftMargin += (int)Math.Ceiling((double)buffer.LineCount.ToString().Length * fe.MaxXAdvance);
+ leftMargin += (int)Math.Ceiling((double)buffer.LineCount.ToString().Length * fe.MaxXAdvance) +6;
if (foldingEnabled)
leftMargin += foldSize;
if (leftMargin > 0)
return;
Configuration.Set ("PrintLineNumbers", value);
NotifyValueChanged ("PrintLineNumbers", PrintLineNumbers);
+ measureLeftMargin ();
RegisterForGraphicUpdate ();
}
}
if (!this.Focusable)
return;
- base.onMouseDown (sender, e);
+ if (mouseLocalPos.X >= leftMargin)
+ base.onMouseDown (sender, e);
if (doubleClicked) {
doubleClicked = false;
return;
}
- updateCurrentPos ();
- SelBegin = SelRelease = CurrentPosition;
-
+ if (mouseLocalPos.X < leftMargin) {
+ toogleFolding (parser.Tokens.IndexOf (PrintedLines[(int)Math.Max (0, Math.Floor (mouseLocalPos.Y / fe.Height))]));
+ } else {
+ updateCurrentPos ();
+ SelBegin = SelRelease = CurrentPosition;
+ }
RegisterForRedraw();
}
public override void onMouseUp (object sender, MouseButtonEventArgs e)
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Window AlwaysOnTop="true" Caption="Editor Options" Width="60%" Height="80%">
+ <VerticalStack>
+ <CheckBox Caption="Print line number" IsChecked="{²PrintLineNumbers}"/>
+ </VerticalStack>
+</Window>
\ No newline at end of file
<MenuItem Command="{CMDSaveAs}" />
<MenuItem Command="{CMDQuit}" />
</MenuItem>
- <MenuItem Caption="Edit" Name="edit" Width="Fit" PopWidth="60">
+ <MenuItem Caption="Edit" Name="edit" Width="Fit" PopWidth="100">
<MenuItem Command="{CMDUndo}" />
<MenuItem Command="{CMDRedo}" />
<MenuItem Command="{CMDCut}" />
<MenuItem Command="{CMDCopy}" />
<MenuItem Command="{CMDPaste}" />
+ <MenuItem Command="{CMDOptions}"/>
</MenuItem>
<MenuItem Caption="Help" Width="Fit" PopWidth="60">
<MenuItem Caption="About"/>